Skip to main content

Rapid YAML - a library to parse and emit YAML, and do it fast

Project description

Rapid YAML

MIT Licensed release PyPI Docs Gitter

test Coveralls Codecov Total alerts Language grade: C/C++

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

rapidyaml-0.2.2-cp39-cp39-win_amd64.whl (104.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

rapidyaml-0.2.2-cp39-cp39-win32.whl (83.3 kB view details)

Uploaded CPython 3.9 Windows x86

rapidyaml-0.2.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (128.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

rapidyaml-0.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (135.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

rapidyaml-0.2.2-cp38-cp38-win_amd64.whl (103.3 kB view details)

Uploaded CPython 3.8 Windows x86-64

rapidyaml-0.2.2-cp38-cp38-win32.whl (83.5 kB view details)

Uploaded CPython 3.8 Windows x86

rapidyaml-0.2.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (128.7 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

rapidyaml-0.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (135.5 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

rapidyaml-0.2.2-cp37-cp37m-win_amd64.whl (103.2 kB view details)

Uploaded CPython 3.7m Windows x86-64

rapidyaml-0.2.2-cp37-cp37m-win32.whl (83.0 kB view details)

Uploaded CPython 3.7m Windows x86

rapidyaml-0.2.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (128.6 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

rapidyaml-0.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (135.3 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

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

Hashes for rapidyaml-0.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 448436a8b25f0b1dede24a94a66fb18d2757cec6de1579678041d6b19ec924ab
MD5 8744c1f33eca63e515a4c8293209f740
BLAKE2b-256 9ba1a70be1e3192f69e3250cf357399424e16c37887f5f39210bb5406cc1b489

See more details on using hashes here.

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

Hashes for rapidyaml-0.2.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 0457e468e8b9b3511431df25237da67ccec067e203481737da7aec8361d5f0fb
MD5 ee0d27c0266367b54d8aa5ba0b3eb112
BLAKE2b-256 f33e45b708b41c56a89bd07c1e1b4d070b873db6cb3c351ff1d3189b53660401

See more details on using hashes here.

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

File hashes

Hashes for rapidyaml-0.2.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b67ac6fa7fcbb443bb3d6186a20ad99769e27e9afea5f856b63e8cd6f4978906
MD5 cbc411bd47c1ac82e8b37e27fe29e9fc
BLAKE2b-256 da7ab2605511c1265ce7bf86c832be7dad2209b85cd9bddf2431c55c483311fc

See more details on using hashes here.

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

File hashes

Hashes for rapidyaml-0.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f9319d2a0daa367d5bc9dfd727458196486038a58436fecf8a7615e3917a6466
MD5 15c405077fc445fd60bdf2da60b8abb9
BLAKE2b-256 afadee029c009bf1d3742b4d0b9257a722c954a6bea244418259f5598a64656d

See more details on using hashes here.

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

Hashes for rapidyaml-0.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c369c4a4baf644cf84c0214f70b44e82d81b347117f88906c502a0ba28ea982b
MD5 1295a8748449e030cc69458af8ed423d
BLAKE2b-256 88df06b0207b85c2b785ef028494c32d8b812591ea48dc68d821f4521d5eb970

See more details on using hashes here.

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

Hashes for rapidyaml-0.2.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 255d587dd87574352607761df2a73de9610721ff663b7d22593c3b09e4dbd4a7
MD5 864fc4aa166950616df04d5b7aca36cf
BLAKE2b-256 3e9041578f349332c74900ae33c8edeb1ab68419fc300c2350d2ec967031010e

See more details on using hashes here.

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

File hashes

Hashes for rapidyaml-0.2.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2a06ef16fdd58a2b12a0a9028bc76f2c0e7126ba2d077fcaa67d4564036f91b8
MD5 9f324c9fdd234853b22a98a26efa71d4
BLAKE2b-256 fa7857fbe943c0c7c71c310e2a1534eef6ae79af4c233fa2a3aabbc36f4a679b

See more details on using hashes here.

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

File hashes

Hashes for rapidyaml-0.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 4ebb6d81d5e5471610b0fddab13cbb316b8f85ac88cb07b149b039f8d2b9d33b
MD5 d9afbee5e6569aa25ebf2f0f575a92d5
BLAKE2b-256 4b7e583375440013b7943a73783e811379396231ec8acae1383649fb5adae4e4

See more details on using hashes here.

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

Hashes for rapidyaml-0.2.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 de0a2f349d0d88df6747d50b036b9f579a27aac0e97a518b08489d3f67bb585b
MD5 a529413290bbe768ccdb60ffc2c81443
BLAKE2b-256 1c635cef4536a6d20c1aeed5aa3c3fe392061d0b130b0d3d6fa2073d15797016

See more details on using hashes here.

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

Hashes for rapidyaml-0.2.2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 784d3c21881a1e6dc781606fb310003d7ac6ff5dfdc8ef8df5abe9afb0cc0da8
MD5 6958ac5bb55c0fb63f38476842ae2bed
BLAKE2b-256 33a34fe60d57f21a7dc600104cc710d81008c2912362a64268cf994750e095b8

See more details on using hashes here.

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

File hashes

Hashes for rapidyaml-0.2.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 75a024fa2660f16d75c4cb68892e320d7574b79823a3bf49ab6e968ddd87ef1e
MD5 148009026258158e8db47af02ad68f7c
BLAKE2b-256 22ddb2b5dbd2ba6b78b67a9a989c3b96588ae0ca746775f395c115053b312526

See more details on using hashes here.

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

File hashes

Hashes for rapidyaml-0.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 33c91cb8e1cd4f3061770dbb72ed41a93402eab27ad103efb7fe7f22587c7759
MD5 deb6dcb8ba411e419c3e07a5b5ef3cde
BLAKE2b-256 9e24b670e3e5540c9f1b631b16eab954aad00634a24155d7b7021d6206a96543

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page