diff options
Diffstat (limited to 'libraries/rapidyaml/README')
-rw-r--r-- | libraries/rapidyaml/README | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/libraries/rapidyaml/README b/libraries/rapidyaml/README new file mode 100644 index 0000000000..16bf67689b --- /dev/null +++ b/libraries/rapidyaml/README @@ -0,0 +1,33 @@ +Rapid YAML, or ryml for short. ryml is a C++ library to parse and emit +YAML, and do it fast, on everything from x64 to bare-metal chips +without operating system. (If you are looking to use your programs +with a YAML tree as a configuration tree with override facilities, +take a look at c4conf). + +ryml parses both read-only and in-situ source buffers; the resulting +data nodes hold only views to sub-ranges of the source buffer. No +string copies or duplications are done, and no virtual functions are +used. The data tree is a flat index-based structure stored in a single +array. Serialization happens only at your direct request, after +parsing / before emitting. Internally, the data tree representation +stores only string views and has no knowledge of types, but of course, +every node can have a YAML type tag. ryml makes it easy and fast to +read and modify the data tree. + +ryml is available as a single header file, or it can be used as a +simple library with cmake -- both separately (ie build->install-> +find_package()) or together with your project (ie with +add_subdirectory()). + +ryml can use custom global and per-tree memory allocators and error +handler callbacks, and is exception-agnostic. ryml provides a default +implementation for the allocator (using std::malloc()) and error +handlers (using using std::abort() is provided, but you can opt out +and provide your own memory allocation and eg, exception-throwing +callbacks. + +ryml does not depend on the STL, ie, it does not use any std +container as part of its data structures), but it can serialize and +deserialize these containers into the data tree, with the use of +optional headers. ryml ships with c4core a small C++ utilities +multiplatform library. |