A portable, header-only C++ library for deserializing, serializing, and building YAML documents with full YAML 1.2.2 compliance.
fkYAML is a C++ header-only library for deserializing, serializing, and building YAML documents. It solves the need for a portable, dependency-free YAML parser that integrates easily into C++ projects while fully complying with the YAML 1.2.2 specification.
C++ developers working on cross-platform applications, tools, or systems that require YAML configuration, data interchange, or serialization without external dependencies.
Developers choose fkYAML for its header-only design, extensive compiler/OS support, comprehensive YAML compliance, and strong performance compared to alternatives like yaml-cpp, all backed by rigorous testing and detailed documentation.
A C++ header-only YAML library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Just include headers; works across GCC, Clang, VS on Linux, macOS, Windows with C++11+, no external dependencies, making integration trivial.
Benchmarks show it's 70% faster than libfyaml and 6.5x faster than yaml-cpp, with efficient deserialization into native C++ types like booleans and integers.
Allows custom node value types via basic_node templates and from_node/to_node functions for arbitrary type conversions, detailed in tutorials.
100% line/condition coverage, tested with Valgrind, sanitizers, and over 40 compiler/OS combinations ensuring reliability and cross-platform stability.
Testing against the official YAML test suite is a work in progress, which may raise concerns for edge-case YAML 1.2.2 compliance in production.
Serialization always uses Unix-style line breaks (\n) with no option for Windows-style (\r\n), limiting control for cross-platform file generation.
While fast, it's significantly slower than rapidyaml in mutable buffer mode, as benchmarks show, which could matter for ultra-high-performance applications.