Library Metadata
The sources for each library, or possibly a number of related libraries, is contained in a sub-module of the Boost super-project.
Each sub-module must contain a file which describes the libraries that it contains. This is located at meta/libraries.json
.
Json Objects
If the sub-module contains a single library, libraries.json
should contain a single object, for example:
{
"key": "unordered",
"name": "Unordered",
"authors": [
"Daniel James"
],
"maintainers": [
"Daniel James <dnljms -at- gmail.com>"
],
"description": "Unordered associative containers.",
"std": [
"tr1"
],
"category": [
"Containers"
],
"cxxstd": "03"
}
Or view: unordered/meta /libraries.json.
Multiple Libraries
If the sub-module contains multiple libraries, libraries.json
should contain a list of objects, for example:
[
{
"key": "algorithm",
"name": "Algorithm",
"authors": [
"Marshall Clow"
],
"description": "A collection of useful generic algorithms.",
"category": [
"Algorithms"
],
"maintainers": [
"Marshall Clow <marshall -at- idio.com>"
],
"cxxstd": "03"
},
{
"key": "algorithm/minmax",
"name": "Min-Max",
"authors": [
"Hervé Brönnimann"
],
"description": "Standard library extensions for simultaneous min/max and min/max element computations.",
"documentation": "minmax/",
"category": [
"Algorithms"
],
"maintainers": [
"Marshall Clow <marshall -at- idio.com>"
],
"cxxstd": "03"
},
{
"key": "algorithm/string",
"name": "String Algo",
"authors": [
"Pavol Droba"
],
"description": "String algorithms library.",
"documentation": "string/",
"category": [
"Algorithms",
"String"
],
"maintainers": [
"Marshall Clow <marshall -at- idio.com>"
],
"cxxstd": "03"
}
]
Or view: algorithm/meta/libraries.json.
Json Fields
All meta files should contain key
, name
, description
, authors
, maintainers
, and category
. The other fields are optional.
boost-version
The Boost version where the library was first added, such as: "boost-version": "1.33.0"
.
status
Used for libraries with special statuses, currently can have the value deprecated
for deprecated libraries, and hidden
for libraries which shouldn’t be displayed to the user. Hidden libraries include detail and winapi, both of which are hidden because they are used as components of other libraries, and not intended as stand-alone libraries themselves.
The library coroutine is marked as "deprecated", though this does not mean full deprecation as this library is part of the Boost super-project, and will be tested each time the super-project is tested.
maintainers
One, or more, strings containing both the names and, usually, email addresses of the maintainers.
category
A list of one or more of the Categories that the library belongs to.
cxxstd
The minimum C++ standard compilation level at which all, or the large majority, of the functionality in the library is usable. The possible values are:
-
98 = C++98
-
03 = C++03
-
11 = C++11
-
14 = C++14
-
17 = C++17
-
20 = C++20
-
23 = C++23
The level only indicates the minimum level, which means that the functionality of the library can be used when compiling at that level or at a higher level. There may be some functionality in the library which will need a higher C++ standard compilation level than is indicated by this value, but the information about that specific functionality will be provided for the end-user within the documentation for that library. If a library does not have this field it indicates that the end-user will have to read the library documentation to understand what C++ standard compilation level is needed to use the library.
Note that 11
and 14
are commonly set minimum levels.
Categories
A library can be in one or more categories. The string is not case-sensitive. In some cases, the string used to describe the category on our website is slightly more descriptive than the string used in the category
field.
Metadata Category | Website Category |
---|---|
|
Algorithms |
|
Concurrent Programming |
|
Containers |
|
Correctness and testing |
|
Data structures |
|
Domain Specific |
|
Language Features Emulation |
|
Error handling and recovery |
|
Function objects and higher-order programming |
|
Generic Programming |
|
Image processing |
|
Input/Output |
|
Inter-language support |
|
Iterators |
|
Math and numerics |
|
Memory |
|
Template Metaprogramming |
|
Miscellaneous |
|
Parsing |
|
Patterns and Idioms |
|
Preprocessor Metaprogramming |
|
Programming Interfaces |
|
State Machines |
|
String and text processing |
|
System |
|
Broken compiler workarounds |