A .NET library for parsing, emitting, and serializing YAML with support for YAML 1.1 and 1.2 specifications.
YamlDotNet is a .NET library for working with YAML (YAML Ain't Markup Language), a human-friendly data serialization format. It provides tools for parsing YAML documents, emitting YAML output, and serializing .NET objects to and from YAML streams. The library solves the problem of handling YAML data in .NET applications with full support for YAML 1.1 and 1.2 specifications.
.NET developers who need to read, write, or manipulate YAML configuration files, data files, or serialized objects in their applications. This includes developers working with configuration management, data interchange, or any system using YAML as a data format.
Developers choose YamlDotNet because it offers a complete, production-ready YAML solution for .NET with both low-level control and high-level convenience. Its comprehensive specification support, built-in serialization capabilities, and cross-platform compatibility make it the go-to library for YAML processing in the .NET ecosystem.
YamlDotNet is a .NET library for YAML
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports parsing for both YAML 1.1 and 1.2 specifications, with emitter support for YAML 1.1, ensuring broad compatibility with most YAML documents as shown in the conformance table.
Includes a built-in serialization library for easily converting .NET objects to and from YAML streams, similar to XmlDocument, reducing boilerplate code for common tasks like configuration management.
Allows customization with naming conventions such as CamelCase and Underscored during serialization and deserialization, adapting to different coding standards as demonstrated in the quick start examples.
Compatible with netstandard 2.0/2.1, .NET 6.0/8.0, and .NET Framework 4.7, making it usable across a wide range of .NET environments and projects.
The emitter only supports YAML 1.1, not 1.2, which is a clear limitation admitted in the README's conformance table and may hinder projects requiring full YAML 1.2 output.
Offers both low-level parsing/emitting and high-level object models, which can be overwhelming for developers who only need simple YAML handling without the extensive serialization features.
As a comprehensive library with serialization capabilities, it may have higher memory and CPU usage compared to lightweight alternatives, especially for large YAML files or high-throughput scenarios.