Rapid YAML - a library to parse and emit YAML, and do it fast
Project description
Rapid YAML
Or ryml, for short. ryml is a library to parse and emit YAML, and do it fast.
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 has no knowledge of types (but of course, every node can have a YAML type tag). It is easy and fast to read, write and iterate through the data tree.
ryml can use custom global and per-tree memory allocators, and is
exception-agnostic. Errors are reported via a custom error handler callback.
A default error handler implementation using std::abort()
is provided, but
you can opt out, or provide your exception-throwing callback.
ryml has respect for your compilation times and therefore it is NOT header-only. It uses standard cmake build files, so it is easy to compile and install.
ryml has no dependencies, not even on the STL (although it does use the libc). It provides optional headers that let you serialize/deserialize STL strings and containers (or show you how to do it).
ryml is written in C++11, and is known to compile with:
- Visual Studio 2015 and later
- clang++ 3.9 and later
- g++ 5 and later
ryml is extensively unit-tested in Linux, Windows and MacOS. The tests run in the standard x64, x86 and arm architectures, and include analysing ryml with:
- valgrind
- clang-tidy
- clang sanitizers:
- memory
- address
- undefined behavior
- thread
- LGTM.com
ryml is also available in Python, with more languages to follow (see below).
See also the changelog and the roadmap.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file rapidyaml-0.2.2-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 104.4 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 448436a8b25f0b1dede24a94a66fb18d2757cec6de1579678041d6b19ec924ab |
|
MD5 | 8744c1f33eca63e515a4c8293209f740 |
|
BLAKE2b-256 | 9ba1a70be1e3192f69e3250cf357399424e16c37887f5f39210bb5406cc1b489 |
File details
Details for the file rapidyaml-0.2.2-cp39-cp39-win32.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp39-cp39-win32.whl
- Upload date:
- Size: 83.3 kB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0457e468e8b9b3511431df25237da67ccec067e203481737da7aec8361d5f0fb |
|
MD5 | ee0d27c0266367b54d8aa5ba0b3eb112 |
|
BLAKE2b-256 | f33e45b708b41c56a89bd07c1e1b4d070b873db6cb3c351ff1d3189b53660401 |
File details
Details for the file rapidyaml-0.2.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 128.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b67ac6fa7fcbb443bb3d6186a20ad99769e27e9afea5f856b63e8cd6f4978906 |
|
MD5 | cbc411bd47c1ac82e8b37e27fe29e9fc |
|
BLAKE2b-256 | da7ab2605511c1265ce7bf86c832be7dad2209b85cd9bddf2431c55c483311fc |
File details
Details for the file rapidyaml-0.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
- Upload date:
- Size: 135.2 kB
- Tags: CPython 3.9, manylinux: glibc 2.12+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9319d2a0daa367d5bc9dfd727458196486038a58436fecf8a7615e3917a6466 |
|
MD5 | 15c405077fc445fd60bdf2da60b8abb9 |
|
BLAKE2b-256 | afadee029c009bf1d3742b4d0b9257a722c954a6bea244418259f5598a64656d |
File details
Details for the file rapidyaml-0.2.2-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 103.3 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c369c4a4baf644cf84c0214f70b44e82d81b347117f88906c502a0ba28ea982b |
|
MD5 | 1295a8748449e030cc69458af8ed423d |
|
BLAKE2b-256 | 88df06b0207b85c2b785ef028494c32d8b812591ea48dc68d821f4521d5eb970 |
File details
Details for the file rapidyaml-0.2.2-cp38-cp38-win32.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp38-cp38-win32.whl
- Upload date:
- Size: 83.5 kB
- Tags: CPython 3.8, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 255d587dd87574352607761df2a73de9610721ff663b7d22593c3b09e4dbd4a7 |
|
MD5 | 864fc4aa166950616df04d5b7aca36cf |
|
BLAKE2b-256 | 3e9041578f349332c74900ae33c8edeb1ab68419fc300c2350d2ec967031010e |
File details
Details for the file rapidyaml-0.2.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 128.7 kB
- Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a06ef16fdd58a2b12a0a9028bc76f2c0e7126ba2d077fcaa67d4564036f91b8 |
|
MD5 | 9f324c9fdd234853b22a98a26efa71d4 |
|
BLAKE2b-256 | fa7857fbe943c0c7c71c310e2a1534eef6ae79af4c233fa2a3aabbc36f4a679b |
File details
Details for the file rapidyaml-0.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
- Upload date:
- Size: 135.5 kB
- Tags: CPython 3.8, manylinux: glibc 2.12+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ebb6d81d5e5471610b0fddab13cbb316b8f85ac88cb07b149b039f8d2b9d33b |
|
MD5 | d9afbee5e6569aa25ebf2f0f575a92d5 |
|
BLAKE2b-256 | 4b7e583375440013b7943a73783e811379396231ec8acae1383649fb5adae4e4 |
File details
Details for the file rapidyaml-0.2.2-cp37-cp37m-win_amd64.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp37-cp37m-win_amd64.whl
- Upload date:
- Size: 103.2 kB
- Tags: CPython 3.7m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de0a2f349d0d88df6747d50b036b9f579a27aac0e97a518b08489d3f67bb585b |
|
MD5 | a529413290bbe768ccdb60ffc2c81443 |
|
BLAKE2b-256 | 1c635cef4536a6d20c1aeed5aa3c3fe392061d0b130b0d3d6fa2073d15797016 |
File details
Details for the file rapidyaml-0.2.2-cp37-cp37m-win32.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp37-cp37m-win32.whl
- Upload date:
- Size: 83.0 kB
- Tags: CPython 3.7m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 784d3c21881a1e6dc781606fb310003d7ac6ff5dfdc8ef8df5abe9afb0cc0da8 |
|
MD5 | 6958ac5bb55c0fb63f38476842ae2bed |
|
BLAKE2b-256 | 33a34fe60d57f21a7dc600104cc710d81008c2912362a64268cf994750e095b8 |
File details
Details for the file rapidyaml-0.2.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 128.6 kB
- Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75a024fa2660f16d75c4cb68892e320d7574b79823a3bf49ab6e968ddd87ef1e |
|
MD5 | 148009026258158e8db47af02ad68f7c |
|
BLAKE2b-256 | 22ddb2b5dbd2ba6b78b67a9a989c3b96588ae0ca746775f395c115053b312526 |
File details
Details for the file rapidyaml-0.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
.
File metadata
- Download URL: rapidyaml-0.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
- Upload date:
- Size: 135.3 kB
- Tags: CPython 3.7m, manylinux: glibc 2.12+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33c91cb8e1cd4f3061770dbb72ed41a93402eab27ad103efb7fe7f22587c7759 |
|
MD5 | deb6dcb8ba411e419c3e07a5b5ef3cde |
|
BLAKE2b-256 | 9e24b670e3e5540c9f1b631b16eab954aad00634a24155d7b7021d6206a96543 |