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 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()). (See below for examples).

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.

ryml is written in C++11, and compiles cleanly with:

  • Visual Studio 2015 and later
  • clang++ 3.9 and later
  • g++ 4.8 and later
  • Intel Compiler

ryml is extensively unit-tested in Linux, Windows and MacOS. The tests cover x64, x86, wasm (emscripten), arm, aarch64, ppc64le and s390x architectures, and include analysing ryml with:

  • valgrind
  • clang-tidy
  • clang sanitizers:
    • memory
    • address
    • undefined behavior
    • thread
  • LGTM.com

ryml also runs in bare-metal, and RISC-V architectures. Both of these are pending implementation of CI actions for continuous validation, but ryml has been proven to work there.

ryml is available in Python, and can very easily be compiled to JavaScript through emscripten (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.4.0-cp39-cp39-win_amd64.whl (140.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

rapidyaml-0.4.0-cp39-cp39-win32.whl (111.2 kB view details)

Uploaded CPython 3.9 Windows x86

rapidyaml-0.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (174.8 kB view details)

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

rapidyaml-0.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (184.7 kB view details)

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

rapidyaml-0.4.0-cp38-cp38-win_amd64.whl (139.1 kB view details)

Uploaded CPython 3.8 Windows x86-64

rapidyaml-0.4.0-cp38-cp38-win32.whl (111.4 kB view details)

Uploaded CPython 3.8 Windows x86

rapidyaml-0.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (175.1 kB view details)

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

rapidyaml-0.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (185.1 kB view details)

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

rapidyaml-0.4.0-cp37-cp37m-win_amd64.whl (139.0 kB view details)

Uploaded CPython 3.7m Windows x86-64

rapidyaml-0.4.0-cp37-cp37m-win32.whl (111.2 kB view details)

Uploaded CPython 3.7m Windows x86

rapidyaml-0.4.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (174.9 kB view details)

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

rapidyaml-0.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (185.1 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.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: rapidyaml-0.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 140.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 816c7218587baba70437183636b1e3a822cc1af31a03b8d69e0de8e834ce21f5
MD5 03f2909747c0295da7aed5a2422f1808
BLAKE2b-256 d13a5dfb63b6f69a6522591997296d243cfa962d0929ea3ff93af64a62a123f4

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: rapidyaml-0.4.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 111.2 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 ef9cf9e2778dd71b36110a24099cc2363901fb319dc5cef5cf16a58a61db6bbc
MD5 3727e794abc1a9545055be710115450e
BLAKE2b-256 a34b6a9d8c33e3062d94cb845296326043c3a07eb511dc85e6bb7009fd4aee91

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-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.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 695b523ac8c475d3aa3e45e8bd669e23b9968963b77a4a31b3434f9c3793c684
MD5 ce7a7313020a01a96b44988f76ba12ef
BLAKE2b-256 8f5bab0f62211cc79f5a77716d64324fbc9d2696446c44b6ce7056b11d690560

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for rapidyaml-0.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 9a43e7720ea275eff429351bfd4e091120c5ee6c0ece3e8425d1d5d15bd6531c
MD5 b9a7fb51eff83fb845e5761fe0258af6
BLAKE2b-256 6afd16ed2451b387948141785114cefd1c15f87bd7c3bd170c1f6fd58e174366

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: rapidyaml-0.4.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 139.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 31950041a7e18e7fdec70e47e0b95b1800322107508beeeb179b9c3322b941bf
MD5 fa62a5a5551e63bb121ff186ce9773d2
BLAKE2b-256 0843dbbf54d6a5b275733f031565b461ac03c8d7b266d24a4c62eadb9f5c4ecf

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: rapidyaml-0.4.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 111.4 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 789e1f3224476deaab45338ade2dc470f9e49a22cf6720972983ebf4f5353b6f
MD5 c0fbb85c633c7d0e2716faced27f9c9d
BLAKE2b-256 819f84b9d83948948b1c639f671e8840d6f86027d7fbfd727aea592989b68d38

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-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.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5fe69e165ed4b084e685eab12e580d6bde43c032e21cce6f08ef98c3e9f04ef4
MD5 b479536ea852d011118236e6c1b9ef1e
BLAKE2b-256 ef17fa79a2303350a15380cc915ede4c25e11acb028e1dd5cd052aa10d5d67c0

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for rapidyaml-0.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 d6c0ecfc9ac43c664abcd5a5e60c02e331b359c0200b5a5f9023bb1f3e1bf8f0
MD5 e89761f3ae0a45118520bd3b2d95f8b5
BLAKE2b-256 930ff711bbac093eee1cab6aef4d08f929f93198926b65e1000395d9ae1f8144

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: rapidyaml-0.4.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 139.0 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 9f3ddb2fb0cf7ba7b387d7bd6e8b1ed8c4b40636f08ec222f672255e6e7d9d8b
MD5 ab013dba28096e3f71a8d186c69dcdf8
BLAKE2b-256 3f8534b1a0efbc2c91ab1e07cdff57dee82cfcde34836d50309d52444c8b6eea

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: rapidyaml-0.4.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 111.2 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 c806cf080de6a42e264c0c1784544b1529f7b76b5da1ecdbddb4494a3b8fc3e9
MD5 2ce7c13817f79d84b44ef0e3b561ca21
BLAKE2b-256 bc297e928b3a72d6adfbaadb4742278069e46306f2c512dafcb6207e952b9a24

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-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.4.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6fbb0086b2136c3505333e71710661f0117f61cd114e427147bbc857ab896f3a
MD5 84eccc40bb62e73ac34a8ce328546c5d
BLAKE2b-256 77182aa47a0452a261d6cf7ebd0a25dd9704eb32b15024d7a408f7a2a8d2d94f

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for rapidyaml-0.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 464c5e39f720bf25f488e1a17a1064c5e96d4301b35ebf1c132ef82201ac0ece
MD5 44e504a9f3a5e8640751045f640e8c71
BLAKE2b-256 1a5847ff14421f6389487fb9d62277224bb6e489395346e4db6efe7afeca936c

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