PackageTrack
Sign in Get early access

yaml-rust2

A fully YAML 1.2 compliant YAML parser

0.12.0 53M downloads/mo #1189 most downloaded on crates.io Ethiraric/yaml-rust2

What this package is like to depend on

Last release 5 days ago

18 Aug 2026

Release timing varies

gaps range from 1 weeks to 8 months

Nearly every release is documented

notes for 14 of 14 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

14 releases · first in 2024

4 releases in the last 12 months

see the full history below

Release timeline

14 releases · Feb 2024 to Aug 2026
2025 2026
Release Pre-release

Releases

latest 14
  1. 0.12.0 18 Aug 2026
    Release notes

    Changes:

    • The minimum supported Rust version is now v1.85.0.
    • hashlink was upgraded to v0.12.1.
    • quickcheck (dev-only dependency) was upgraded to v1.1.0.
    • toml (dev-only dependency) was upgraded to v1.1.4.
    • (#79) corrected the documentation for Marker::index.
    Open source →
  2. 0.11.1 18 Aug 2026
    Release notes

    Changes:

    • (#78) Fix parsing short YAML documents to avoid infinite loops.
    Open source →
  3. 0.11.0 16 Dec 2025
    Release notes

    Changes:

    • The actions/checkout github actions dependency was updated.
    • The hashlink dependency was updated to v0.11.
    Open source →
  4. 0.10.4 14 Sep 2025
    Release notes
    • Parse True, TRUE, False and FALSE as bools instead of strings.
      This is in line with the core schema.
    • Fixed build with --no-default-features (#60)
    Open source →
    Release notes

    Bug fixes:

    • Parse True, TRUE, False and FALSE as bools instead of strings. This is in line with the core schema.
    Open source →
  5. 0.10.3 09 Jun 2025
    Release notes

    Changes

    • Exclude yaml-test-suite from the Cargo package.
      This reverts the license changes from last version.
    • 399f481: Bump libtest-mimic from dev-dependencies
    Open source →
    Release notes

    Changes:

    • Exclude yaml-test-suite from the Cargo package. This reverts the license changes from last version.
    • 399f481: Bump libtest-mimic from dev-dependencies
    Open source →
  6. 0.10.2 20 May 2025
    Release notes

    Bug fixes

    • Parse (?i)[+-]?(?:inf|infinity|nan) as strings instead of floats

    Changes

    • Merge license files and respect yaml-test-suite MIT license. This means we
      now correctly state that this crate can not be licensed under only the
      Apache-2.0 license.

    Please review your license requirement following this release.

    Open source →
    Release notes

    Bug fixes:

    • Parse (?i)[+-]?(?:inf|infinity|nan) as strings instead of floats

    Changes:

    • Merge license files and respect yaml-test-suite MIT license. This means we now correctly state that this crate can not be licensed under only the Apache-2.0 license.
    Open source →
  7. 0.10.1 26 Mar 2025
    Release notes

    Bug fixes

    • Parse .NaN as float instead of NaN.
    Open source →
    Release notes

    Bug fixes:

    • Parse .NaN as float instead of NaN.
    Open source →
  8. 0.10.0 11 Feb 2025
    Release notes

    Breaking Changes

    • Update dependencies.
      hashlink had a bogus requirement of >= 0.8, < 0.10, sorry. As mentioned here, range requirements shouldn't be used and I haven't been vigilant enough when reviewing. The requirement is now set to 0.10.

    Changes

    • Force quotes on y and n to appease the YAML 1.1 lords.
    Open source →
    Release notes

    Breaking Changes:

    • Update dependencies.

      hashlink had a bogus requirement of >= 0.8, < 0.10, sorry. As mentioned here, range requirements shouldn't be used and I haven't been vigilant enough when reviewing. The requirement is now set to 0.10.

    Changes:

    • Force quotes on y and n to appease the YAML 1.1 lords.
    Open source →
  9. 0.9.0 25 Sep 2024
    Release notes

    Breaking Changes

    • Update dependencies.
      Since hashlink is exposed (through Yaml::Hash) and has been updated from 0.8.4 to 0.9.1, the new version of yaml-rust2 will not link properly if you explicitly rely on hashlink v0.8.
      Existing code with v0.8.4 should still compile fine in v0.9.1 (see hashlink's v0.9.0 changelog).

    Bug fixes

    • (#37)
      Parse empty scalars as "" instead of "~".

    Features

    • Add Yaml::is_hash.
    • Add better doccomments to the Index and IntoIterator implementations for Yaml to better explain their quirks and design decisions.
    Open source →
    Release notes

    Breaking Changes:

    • Update dependencies.

      Since hashlink is exposed (through Yaml::Hash) and has been updated from 0.8.4 to 0.9.1, the new version of yaml-rust2 will not link properly if you explicitly rely on hashlink v0.8. Existing code with v0.8.4 should still compile fine in v0.9.1 (see hashlink's v0.9.0 changelog).

    Bug fixes:

    • (#37) Parse empty scalars as "" instead of "~".

    Features:

    • Add Yaml::is_hash.
    • Add better doccomments to the Index and IntoIterator implementations for Yaml to better explain their quirks and design decisions.
    Open source →
  10. 0.8.1 31 May 2024
    Release notes

    Bug fixes

    • (#29) Fix parsing failing for deeply indented scalar blocks.

    • (#21-comment) Fix parsing failing with comments immediately following a YAML tag.

    Features

    • (#19) Yaml now implements IndexMut<usize> and IndexMut<&'a str>. These functions may not return a mutable reference to a BAD_VALUE. Instead, index_mut() will panic if either:

      • The index is out of range, as per IndexMut's requirements
      • The inner Yaml variant doesn't match Yaml::Array for usize or Yaml::Hash for &'a str
    • Use cargo features

      This allows for more fine-grained control over MSRV and to completely remove debug code from the library when it is consumed.

      The encoding feature, governing the YamlDecoder, has been enabled by default. Users of @davvid's fork of yaml-rust or of yaml-rust2 might already use this. Users of the original yaml-rust crate may freely disable this feature (cargo <...> --no-default-features) and lower MSRV to 1.65.0.

    • Duplicate keys no longer allowed

      Instead of silently choosing one of two values sharing the same key in a mapping, we now issue an error. This behavior is part of the YAML specification, but not tested by the yaml-test-suite (the parser needs to emit events for both key-values). Additionally, there is no standard way of defining which value should be chosen in case of a duplicate.

    Open source →
    Release notes

    Bug fixes:

    • (#29) Fix parsing failing for deeply indented scalar blocks.

    • (#21-comment) Fix parsing failing with comments immediately following a YAML tag.

    Features:

    • (#19) Yaml now implements IndexMut<usize> and IndexMut<&'a str>. These functions may not return a mutable reference to a BAD_VALUE. Instead, index_mut() will panic if either:

      • The index is out of range, as per IndexMut's requirements
      • The inner Yaml variant doesn't match Yaml::Array for usize or Yaml::Hash for &'a str
    • Use cargo features

      This allows for more fine-grained control over MSRV and to completely remove debug code from the library when it is consumed.

      The encoding feature, governing the YamlDecoder, has been enabled by default. Users of @davvid's fork of yaml-rust or of yaml-rust2 might already use this. Users of the original yaml-rust crate may freely disable this feature (cargo <...> --no-default-features) and lower MSRV to 1.65.0.

    • Duplicate keys no longer allowed

      Instead of silently choosing one of two values sharing the same key in a mapping, we now issue an error. This behavior is part of the YAML specification, but not tested by the yaml-test-suite (the parser needs to emit events for both key-values). Additionally, there is no standard way of defining which value should be chosen in case of a duplicate.

    Open source →
  11. 0.8.0 26 Mar 2024
    Release notes

    Breaking Changes:

    • The encoding library has been replaced with encoding_rs. If you use the trap of YamlDecoder, this change will make your code not compile. An additional enum YamlDecoderTrap has been added to abstract the underlying library and avoid breaking changes in the future. This additionally lifts the encoding dependency on your project if you were using that feature.
      • The signature of the function for YamlDecoderTrap::Call has changed:
      • The encoding::types::DecoderTrap has been replaced with YamlDecoderTrap.
        // Before, with `encoding::types::DecoderTrap::Call`
        fn(_: &mut encoding::RawDecoder, _: &[u8], _: &mut encoding::StringWriter) -> bool;
        // Now, with `YamlDecoderTrap::Call`
        fn(_: u8, _: u8, _: &[u8], _: &mut String) -> ControlFlow<Cow<'static str>>;
        
        Please refer to the YamlDecoderTrapFn documentation for more details.

    Features:

    • Tags can now be retained across documents by calling keep_tags(true) on a Parser before loading documents. (#10 (#12)

    • YamlLoader structs now have a documents() method that returns the parsed documents associated with a loader.

    • Parser::new_from_str(&str) and YamlLoader::load_from_parser(&Parser) were added.

    Development:

    • Linguist attributes were added for the tests/*.rs.inc files to prevent github from classifying them as C++ files.
    Open source →
  12. 0.7.0 20 Mar 2024
    Release notes

    Features:

    • Multi-line strings are now emitted using block scalars.

    • Error messages now contain a byte offset to aid debugging. (#176)

    • Yaml now has or and borrowed_or methods. (#179)

    • Yaml::load_from_bytes() is now available. (#156)

    • The parser and scanner now return Err() instead of calling panic.

    Development:

    • The documentation was updated to include a security note mentioning that yaml-rust is safe because it does not interpret types. (#195)

    • Updated to quickcheck 1.0. (#188)

    • hashlink is now used instead of linked_hash_map.

    Open source →
  13. 0.6.0 15 Mar 2024
    Release notes

    Development:

    • is_xxx functions were moved into the private char_traits module.

    • Benchmarking tools were added.

    • Performance was improved.

    Open source →
  14. 0.5.0 08 Feb 2024
    Release notes
    • The parser now supports tag directives. (#35

    • The info field has been exposed via a new Yaml::info() API method. (#190)

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive