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.1-cp39-cp39-win_amd64.whl (140.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 Windows x86

rapidyaml-0.4.1-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.1-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.1-cp38-cp38-win_amd64.whl (139.1 kB view details)

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

rapidyaml-0.4.1-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.1-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.1-cp37-cp37m-win_amd64.whl (139.0 kB view details)

Uploaded CPython 3.7m Windows x86-64

rapidyaml-0.4.1-cp37-cp37m-win32.whl (111.1 kB view details)

Uploaded CPython 3.7m Windows x86

rapidyaml-0.4.1-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.1-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.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: rapidyaml-0.4.1-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/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e8dd467dd18393f54ae0ceb4841784f0781793e7d62665aa4df777b2f7465add
MD5 1d9708c638742ca6af8ab72f92d2ddf5
BLAKE2b-256 8d5d991e5bf0cee6dded5ed3cb7b58312c8eaa7b055aea15baa94e51fbe914c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rapidyaml-0.4.1-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/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 e62fae7069480fb0e3d7e6d3a0ef99cbaf0694e7266e11ef7c69e55e86ebcb0c
MD5 7bd800f406bd4a832db820f795a6fa03
BLAKE2b-256 9502adec89ed198d5f11da92bc72fd1163ceda0328ae1bd2e532b168f4597f35

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.1-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.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6df2e5b6d2c65cfa451770570681cadceef18859ea3e0c9bdec03228943c1fea
MD5 814b13161edaaaa89d7ea0f1f534f81b
BLAKE2b-256 d4c4d5b8cd6fba7b0e894a1ec4b5e763cdcc88da6af9271864112a1277b7a3ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rapidyaml-0.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ea0f0f9122d76f043e490dbfaa8bce39e557a6dcab1dbd2c0618bc69591f13c1
MD5 d91d0c49329d3d9ca33a4ceb62aad357
BLAKE2b-256 4cd83f4239251c65a89c58c01fdc73bddef42a783ae1fb41190d4706d8074b9d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rapidyaml-0.4.1-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/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 fb9aafec2bf19b595f990c5df967b4a1b5266d1988b3aa11b513555583c81078
MD5 8647da6e46b5afc08536efe2310f8343
BLAKE2b-256 ff642883f2e1100dbff5d7cf3073dfb9017f92faa37c531a2b9f4bed962b6a4c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rapidyaml-0.4.1-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/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 d94e508259accdc81b161d865ff8e5e8c084cdcf4176bcd2923ac5596dc54eb9
MD5 076a94b70fb05d117b8aa5bc30b51c55
BLAKE2b-256 a8339912f97d0122f9590b84ae2bc474d3dcc794bb4b5e0819b235c50992739b

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.1-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.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 01006a8a7e573e6fef7ce088348a87bac5f70c3cc493873d0826f71d876e38ef
MD5 e94f045eb27f42d0a0868d0910584454
BLAKE2b-256 a990ee912d028d696e17928f263d25106c2a5111e9fa9ef6dd39494406181334

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rapidyaml-0.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 3ee2823085afe7411d0c0154acca456ed321ab833c9c90b2e2a112311ed6f5ac
MD5 1651745359edf3cdf813bed28e2b066b
BLAKE2b-256 6664f595d4aab929c577439ce6e720f5f58855cc7c0a8964a8fad7eca29ea938

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rapidyaml-0.4.1-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/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for rapidyaml-0.4.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ae34a0ac4f8a777426fe7aefb74bd2df3c24fc9c5f92336473209272efc07352
MD5 02a41c0a9b4f63f8dcbaf635e7884f2d
BLAKE2b-256 8ec6e228d52060d8dc70756da0d46813e00e67c7eb3a6b9a612ed70d878d165d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for rapidyaml-0.4.1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 5775073fb2741fc70b5646e9ee0fcf8e525f9dc9e0f879d01d06ae9efe25405d
MD5 008e7d39bc3b22b084d5b0fffc21a287
BLAKE2b-256 4d4ed6389aea154f2adf00043e499a60fe8d2e14194658a037f6922e9dd9fc1f

See more details on using hashes here.

File details

Details for the file rapidyaml-0.4.1-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.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b8b1f73e33ce46413e45c22efd0b118625596b6bc3e178dc8a29a9592a15e534
MD5 64af8c09403bffff0f5f7e7711bcb0ee
BLAKE2b-256 5e6e39a6c99e67ec4bfefa8935893ebae81955f0631ac3874c69dd7f1b2181ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rapidyaml-0.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 81a8e2fcfea15fd581931c495b2e312f2ed5b545a2658b2447079ba1fea02d6c
MD5 e38880bab47463d6e83d1466a66a8f7b
BLAKE2b-256 6150e97d89c09cc5de3d51db45397b3b47eb8c55c27b6f92dbfe600f103384d4

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