awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
jbeder avatar

jbeder/yaml-cpp

0
View on GitHub↗
5,931 stars·2,108 forks·C++·MIT·5 views

Yaml Cpp

yaml-cpp is a C++ library for parsing and emitting YAML 1.2 documents. It provides a complete YAML processing pipeline, from reading YAML content into a traversable node tree to writing in-memory data structures back as YAML text.

The library represents parsed YAML as a mutable tree of typed nodes, supporting scalars, sequences, maps, and aliases. It uses a recursive-descent parser to build this node tree, and a stream-based emitter to generate YAML output incrementally. Template-based type conversion enables compile-time serialization between YAML nodes and C++ types, including support for custom user-defined structs and standard STL containers.

For output formatting, the library offers manipulator-driven control over flow style, block style, comments, and anchors. It includes null-safe node access that returns default values for missing keys, and supports ASCII-only output mode that escapes all non-ASCII characters. The library also provides emitter error detection to catch malformed output during emission.

Features

  • YAML Libraries - A C++ library for parsing and emitting YAML 1.2 documents with nested structures and custom types.
  • Node-Tree Data Models - Represents parsed YAML as a mutable tree of typed nodes supporting traversal and in-place editing.
  • YAML Node Values - Extracts typed data from a node and assigns new values for round-trip editing.
  • Collection Iteration - Exposes YAML sequences and maps through standard C++ iterators for element traversal.
  • YAML Stream Emitters - Generates YAML output incrementally through a stream abstraction that accepts manipulator commands.
  • Recursive Descent Parsers - Parses YAML tokens by recursively descending through grammar rules to build a typed node tree.
  • YAML Data Serialization - Emits in-memory C++ data structures as YAML 1.2 formatted text.
  • YAML Structure Builders - Constructs hierarchical YAML structures by nesting sequence and map manipulators.
  • YAML Structure Builders - Constructs nested maps, sequences, scalars, and aliases from scratch using bracket and push operations.
  • Compile-Time Serialization - Converts between YAML nodes and C++ types using template specializations for compile-time serialization.
  • YAML Node Conversions - Specializes a conversion template to encode and decode user-defined structs as YAML nodes.
  • Multi-Document YAML Parsing - Loads YAML 1.2 documents into a traversable node tree for programmatic access.
  • YAML Serializers - Writes C++ data structures as YAML 1.2 formatted text for storage or transmission.
  • Streaming Emitters - Writes YAML output incrementally using stream manipulators to produce structured text.
  • Output Format Manipulators - Provides manipulator-driven control over flow style, block style, comments, and anchors in YAML output.
  • YAML Format Modifiers - Applies formatting modifiers like literal blocks, flow style, comments, and anchors to customize YAML output.
  • YAML Output Format Modifiers - Applies formatting modifiers like literal blocks, flow style, comments, and anchors to customize YAML output.
  • YAML Node Types - Queries whether a node is a scalar, sequence, map, null, or undefined to handle heterogeneous data safely.
  • Template-Based Type Serializers - Provides template-based compile-time serialization for custom C++ structs to YAML nodes.
  • STL Container Outputs - Outputs standard C++ vectors, lists, and maps directly as YAML sequences or mappings.
  • XML and YAML Node Navigation - Builds, inspects, and modifies hierarchical YAML structures using sequences, maps, and scalars.
  • Default Value Returns - Provides null-safe node access that returns default values for missing keys during YAML traversal.
  • AI & Machine Learning - YAML parser and emitter
  • Serialization and Parsing - Parser and emitter for YAML data.
  • Data Serialization - YAML parser and emitter for C++.

Star history

Star history chart for jbeder/yaml-cppStar history chart for jbeder/yaml-cpp

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Yaml Cpp

Similar open-source projects, ranked by how many features they share with Yaml Cpp.
  • nodeca/js-yamlnodeca avatar

    nodeca/js-yaml

    6,591View on GitHub↗

    js-yaml is a JavaScript library providing a programmatic interface for parsing and dumping YAML data. It functions as a parser and serializer that converts YAML strings into JavaScript objects and transforms JavaScript objects back into YAML format. The library includes a command-line interface for parsing or dumping YAML data via direct input or data pipes. It also features an abstract syntax tree transformer to modify the structure of data during serialization. The project provides capabilities for multi-document processing and the definition of custom schemas and tags to handle specialize

    JavaScript
    View on GitHub↗6,591
  • symfony/yamlsymfony avatar

    symfony/yaml

    3,843View on GitHub↗

    This project is a PHP library that serves as a configuration file processor, providing a bridge to translate human-readable YAML text into native PHP arrays and objects. It functions as both a parser for converting YAML content into application-ready data structures and a serializer for transforming PHP data back into formatted YAML strings. The library includes security protections designed to prevent memory exhaustion and stack overflow attacks when processing untrusted documents. It ensures structural integrity through syntax validation and provides a command-line utility to check files fo

    PHPcomponentphpsymfony
    View on GitHub↗3,843
  • goccy/go-yamlgoccy avatar

    goccy/go-yaml

    2,189View on GitHub↗

    This library is a Go-based utility for encoding and decoding YAML data into native language structures. It facilitates the transformation of complex objects into human-readable text formats and provides mechanisms for mapping data fields through reflection and custom type handling. The library distinguishes itself by maintaining an intermediate abstract syntax tree, which allows for precise document modifications and the preservation of comments during serialization. It includes a path-based query engine that enables users to navigate, filter, and update document hierarchies without manual it

    Gogogolanggolang-library
    View on GitHub↗2,189
  • dtolnay/serde-yamldtolnay avatar

    dtolnay/serde-yaml

    1,019View on GitHub↗

    Serde-yaml is a serialization library for the Rust programming language that facilitates the conversion of complex data structures into YAML format and the deserialization of YAML text into strongly typed objects. It functions as a data format converter, enabling the transformation of structured information between native language types and human-readable configuration files. The library integrates with the standard Rust serialization ecosystem to map arbitrary data types to and from the YAML format. By utilizing trait-based data mapping, it allows developers to manage application settings an

    Rustrustserdeyaml
    View on GitHub↗1,019
See all 30 alternatives to Yaml Cpp→

Frequently asked questions

What does jbeder/yaml-cpp do?

yaml-cpp is a C++ library for parsing and emitting YAML 1.2 documents. It provides a complete YAML processing pipeline, from reading YAML content into a traversable node tree to writing in-memory data structures back as YAML text.

What are the main features of jbeder/yaml-cpp?

The main features of jbeder/yaml-cpp are: YAML Libraries, Node-Tree Data Models, YAML Node Values, Collection Iteration, YAML Stream Emitters, Recursive Descent Parsers, YAML Data Serialization, YAML Structure Builders.

What are some open-source alternatives to jbeder/yaml-cpp?

Open-source alternatives to jbeder/yaml-cpp include: nodeca/js-yaml — js-yaml is a JavaScript library providing a programmatic interface for parsing and dumping YAML data. It functions as… symfony/yaml — This project is a PHP library that serves as a configuration file processor, providing a bridge to translate… goccy/go-yaml — This library is a Go-based utility for encoding and decoding YAML data into native language structures. It facilitates… dtolnay/serde-yaml — Serde-yaml is a serialization library for the Rust programming language that facilitates the conversion of complex… jeremyfa/yaml.js — This library provides a parser and encoder for YAML 1.2 data structures, enabling the transformation of human-readable… msgspec/msgspec — msgspec is a high-performance data modeling, serialization, and schema validation toolkit for Python. It serves as a…