A pure Rust implementation of YAML 1.2 parser and emitter with memory safety.
yaml-rust is a pure Rust implementation of YAML 1.2 that provides both parsing and emitting capabilities for YAML documents. It solves the problem of safely processing YAML data in Rust applications without relying on external C libraries or unsafe code. The library offers a complete YAML solution with memory safety guarantees and intuitive APIs.
Rust developers who need to read, write, or manipulate YAML configuration files, data serialization, or any YAML-based data formats in their applications.
Developers choose yaml-rust because it's a native Rust implementation that provides memory safety, full YAML 1.2 compliance, and an intuitive Ruby-like API for accessing data structures. It's specifically designed to integrate seamlessly with Rust's ownership system and error handling patterns.
A pure rust YAML implementation.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built entirely in Rust without external C dependencies, ensuring memory safety and seamless integration with Rust's ecosystem and toolchain.
Offers Ruby-like Array/Hash access patterns, making data manipulation straightforward with safe error handling via BadValue returns instead of panics.
Can load and handle multiple YAML documents within a single input stream, useful for complex data processing and configuration management.
Provides low-level YAML events emission for advanced use cases, allowing custom processing pipelines and fine-grained control.
Admits known bugs like inability to parse empty plain scalars in certain contexts, which may affect strict compliance needs for edge cases.
Lacks support for key YAML features such as tag directives and aliases during deserialization, as highlighted in the Goals section of the README.
Index access methods assume standard array and map structures, requiring additional as_XXX API calls for non-conventional YAML, adding complexity for some use cases.