Rapid YAML - 一个用于解析和生成YAML的库,并且速度快
项目描述
Rapid YAML
或者简称ryml。ryml是一个用于解析和生成YAML的C++库,速度快,可以在从x64到无操作系统的裸机芯片上运行。 (如果您想在程序中使用YAML树作为配置树并具有覆盖功能,请查看 c4conf).
ryml可以解析只读和原位源缓冲区;结果的数据节点仅包含源缓冲区的子范围的视图。没有进行字符串复制或重复,也没有使用虚拟函数。数据树是一个基于索引的扁平结构,存储在一个数组中。序列化仅在您的直接请求下发生,在解析/生成之前。内部,数据树表示形式仅存储字符串视图,不了解类型,但每个节点都可以有YAML类型标签。ryml使得读取和修改数据树变得简单快捷。
ryml 可作为单个头文件使用,或通过 cmake 作为简单的库使用 — 无论是单独使用(例如:构建→安装→find_package()
)还是与您的项目一起使用(例如:使用 add_subdirectory()
)。(以下为示例。)
ryml 可以使用自定义的全局和每树内存分配器和错误处理回调,并且对异常不敏感。ryml 为分配器(使用 std::malloc()
)和错误处理程序(使用异常、longjmp()
或 std::abort()
)提供了默认实现,但您可以取消选择并提供自己的内存分配和例如异常抛出回调。
ryml 不依赖于 STL,即它不将其任何标准容器用作其数据结构的一部分),但可以使用可选头文件将这些容器序列化和反序列化到数据树中。ryml 附带 c4core,这是一个小型 C++ 实用程序多平台库。
ryml 使用 C++11 编写,并且可以与以下编译器干净地编译:
- Visual Studio 2015 及更高版本
- clang++ 3.9 及更高版本
- g++ 4.8 及更高版本
- Intel 编译器
ryml 的 API 文档可在 ReadTheDocs 上找到。
ryml 在 Linux、Windows 和 MacOS 上进行了广泛的单元测试,并可在 GitHub Actions 上使用。测试涵盖了 x64、x86、wasm(emscripten)、arm、aarch64、ppc64le 和 s390x 架构,并包括使用以下内容分析 ryml:
- valgrind
- clang-tidy
- gcc/clang sanitizers
- 内存
- 地址
- 未定义行为
ryml 还在 裸机 上运行,并在 RISC-V 架构 上运行。这两者都尚未实现 CI 动作以进行持续验证,但 ryml 已在这些环境中得到验证。
ryml 在 Python 中可用,并且可以通过 emscripten 非常容易地编译到 JavaScript(以下为示例)。
项目详情
哈希值 for rapidyaml-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 82f3bb5cf52b70208721fc5419aad78be1146460194507ae44b671c86a5583fc |
|
MD5 | 981d0ea8984934bcf6379aa8164b6c63 |
|
BLAKE2b-256 | 17e5f5bba51ef5a1cede96738de3baad8df9dbf90ef4e652541339ed7a6942f2 |
哈希值 for rapidyaml-0.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 247e568a0d6020460568acd5b5c9264fae9fcf5236018a60218156752b03608b |
|
MD5 | 9feb7a3f59a183c1bfcda0448bfd2879 |
|
BLAKE2b-256 | 92cef411c042ab17236dcc4bd7f75834c0887d6719492dec549e3ed271c6a7fe |
哈希值 for rapidyaml-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7ed8a9343a93a4e50d810eb7de82d29c262f476b54e1d99b64ab09b592e4eb92 |
|
MD5 | 8211e4d21c5be55018615dca7120f138 |
|
BLAKE2b-256 | aa724e44af32ea6ca848efe77c6d3e7e476a4aed05bc9e269a69974ebd46618d |
哈希值 for rapidyaml-0.7.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4d1904dfac3b0a154a368bab07ab148fbba8feaa90f7a59b586e69afa596a7d5 |
|
MD5 | 0d283139860a1b29a390e7dc4548e348 |
|
BLAKE2b-256 | fa5b19b28c378ab4eef4b9161c64c943a06452f9639b6aea2fac2245778e49fb |
哈希值 for rapidyaml-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 30b400222b8f86792b37766a2d87bc1a8984010ea0b94417d322b4ea3f40a6ee |
|
MD5 | 0a5d0375a57d87a22629268ea147d719 |
|
BLAKE2b-256 | 704464919b0104c07d219e430256c651665955083861912dc852bf5f46aaf119 |
哈希值 for rapidyaml-0.7.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1cc7e22fea7cdeed3bb87cd6fe2c737162cf693622738a19f6ae8366dbde50f |
|
MD5 | f3a83297ecb3d3333b6ef064a75a17e8 |
|
BLAKE2b-256 | 3b159b72fa9bc6298bd4b7000e74efaed09a9e340a05a3c47049c46c449d47c5 |
哈希值 for rapidyaml-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a2ee83da9ef25af5d37fa521bdc0d8e2496ab23bbe1aea15e3017778572b364a |
|
MD5 | 94ae4945adf01c241908a078e040d557 |
|
BLAKE2b-256 | 5edf8fed41d87a7e9f197e00ffb6afca4b869b2dc02d0314a48c8ba535fe7a40 |
散列值 用于 rapidyaml-0.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d9cc0db0ea35389843a24c1d51524efc1ea1b99c42227878ca8cc540453908e4 |
|
MD5 | d7ff7ace404312d16fc71242d15ff91a |
|
BLAKE2b-256 | 7f44a226a8bb0a30dca78ef9b9cec9caad5d2035eb2b42307eadf731e3dd28c9 |
散列值 用于 rapidyaml-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1df8ffa6675c532bdea3e8fe8c5d8c06f17fa363529561d647205868d50482b8 |
|
MD5 | c0b60cd4854881a20477a16519aad77c |
|
BLAKE2b-256 | 31315e7e81655bc010b5a0d8477eeb40aea3e5830e24f40688751cf2d815ea65 |
散列值 用于 rapidyaml-0.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fe88406aedd089700fd397602a94728bedda7262b488c2826e4fe6f1c8e89677 |
|
MD5 | b6a1ec6c1a73094835fb4ec2dbbfba34 |
|
BLAKE2b-256 | 13ef2e59e81c1f55dece5c6a2e7194692c16cce7938d8fe0fd004a64e4c6678c |
散列值 用于 rapidyaml-0.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fd42e8ca11af1ac14481c2ef86b134bc61d4344f7d02e644ac5eb13e64489b9a |
|
MD5 | b6a41487b878f594e0e35448b09e6c86 |
|
BLAKE2b-256 | 7d0f72e557a2ceee6445b0b75853b36cf4bc5205e9c10a87c882fc5aabb0d9c7 |
散列值 用于 rapidyaml-0.7.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7354dadfe62c697d4309b448c1e238aa291aa07a414bac9debfc74903294fe00 |
|
MD5 | 0d3ebddff3b5e7c6837bcd926deba794 |
|
BLAKE2b-256 | c1cd606abb965ea33e4382a682003ea0879b3f790699ea5e6b75d528c41cd0e1 |
散列值 用于 rapidyaml-0.7.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1111bab50793d9ee8d50f0f3941b117e1e50490f7ee1f23878a770d7590c08b8 |
|
MD5 | c063b1dc1b7d01bdd17079c2797f735e |
|
BLAKE2b-256 | 8f46b1e4451d76038caa8f5ac846805b96e6e40da398a590eeeaadb1929032ed |
散列值 用于 rapidyaml-0.7.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aa9b3fd59fb78541cec7eab2f8ec0156249d2865c3f3870e715fa5f59b902f34 |
|
MD5 | 0b7a012aa0c9e633a5419162d543590f |
|
BLAKE2b-256 | 2808dae580ff4e1bd1b8b0d60fb66868599ccd4f7683dfe755e52a0c3451befa |