strictyaml VS yaml-rust

Compare strictyaml vs yaml-rust and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
strictyaml yaml-rust
21 4
1,407 596
- -
1.9 0.0
about 1 month ago about 1 month ago
Python Rust
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

strictyaml

Posts with mentions or reviews of strictyaml. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-20.
  • StrictYAML
    1 project | news.ycombinator.com | 29 Sep 2023
    1 project | /r/hypeurls | 3 Jul 2022
    8 projects | news.ycombinator.com | 2 Jul 2022
  • XML is better than YAML
    17 projects | news.ycombinator.com | 20 Sep 2023
    NestedText already is the way I use YAML; everything is intepreted as a string. I have some trust in my YAML parser to not mangle most strings. I could use NestedText, but users would be unfamiliar with it, and IIRC the only parsers are in Python. But then I could use StrictYaml too https://github.com/crdoconnor/strictyaml
  • The new type of SQL injection
    4 projects | /r/ProgrammerHumor | 15 Mar 2023
    you can stick to a subset of YAML syntax (e.g. strictYAML)
  • DO YOU YAML?
    7 projects | dev.to | 16 Jan 2023
    YAML stands for "YAML Ain’t Markup Language" - this is known as a recursive acronym. YAML is often used for writing configuration files. It’s human readable, easy to understand and can be used with other programming languages. Although YAML is commonly used in many disciplines, it has received criticism on the amoutn of whitespace .yml files have, difficulty in editing, and complexity of the standard. Despite the criticism, properly using YAML ensures that you can reproduce the results of a project and makes sure that the virtual environment packages play nicely with system packages. (If you're looking for another way to share environments there are other alternatives to YAML which include StrictYAML (a type-safe YAML parser) and NestedText)
  • The yaml document from hell
    8 projects | /r/programming | 12 Jan 2023
    The example you linked provides this as an example of a YAML document that he wants his format to support.
  • The YAML Document from Hell
    19 projects | news.ycombinator.com | 12 Jan 2023
    That safe subset exists and is implemented in a number of languages. It is called strict-yaml: https://hitchdev.com/strictyaml/
  • Hacker News top posts: Jul 3, 2022
    2 projects | /r/hackerdigest | 3 Jul 2022
    StrictYAML\ (33 comments)
  • Why JSON Isn’t a Good Configuration Language (2018)
    9 projects | news.ycombinator.com | 7 Jun 2022
    To me those are in the category of "nice to have", and the problem is that every developer has different preferences for these [1] [2]. But the main features of StrictYaml, like supporting comments and less syntactic noise, I think are pretty uncontroversial, and perhaps it's worth it to get people to switch over for those alone. It doesn't need to be perfect, it just needs to be a significant enough improvement over JSON, and I'd say those two features are more than enough

    [1]: https://github.com/crdoconnor/strictyaml/issues/37

    [2]: https://github.com/crdoconnor/strictyaml/issues/38

yaml-rust

Posts with mentions or reviews of yaml-rust. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-21.
  • Project idea: port markdownlint to Rust
    9 projects | /r/rust | 21 Apr 2023
    Either https://github.com/chyh1990/yaml-rust or https://github.com/dtolnay/serde-yaml for parsing the YAML config file that markdownlint uses
  • Borrow checker not liking recursive walk through a HashMap
    1 project | /r/rust | 3 Jan 2023
    Here's the Rust code so far -- the commented portions are my intent via pseudocode. This is part of an implementation where there's a _yaml_hash member that points to yaml_rust's underlying LinkedHashMap. (Also using anyhow's bail! and Result.)
  • How to deal with unmaintained crates? (eg. yaml-rust)
    6 projects | /r/rust | 9 Jan 2022
    The first thing I did was to find the crate yaml-rust and it seems it isn't really maintained anymore. It has not been updated in a year and there's a lot of PR's and unresolved issues, the CI is broken... So here is my open ended question.
  • YAML and Configuration Files
    12 projects | news.ycombinator.com | 14 Aug 2021
    Currently, my main concern with YAML is that, by the spec, comments are not attached to a particular node (see https://yaml.org/spec/1.2/spec.html#id2767100). As a result, a lot of YAML parsers (like https://github.com/yaml/libyaml and https://github.com/chyh1990/yaml-rust) only filter out the comments during the parsing phase. This makes it less than ideal for a use-case where the configuration file is expected to be modified by both programs and humans.

    TOML makes it more trivial to associate comments with a node. This is mainly because the language is simpler though, as the spec is not explicit about that (https://github.com/chyh1990/yaml-rust).

What are some alternatives?

When comparing strictyaml and yaml-rust you can also consider the following projects:

pyyaml - Canonical source repository for PyYAML

serde-yaml - Strongly typed YAML library for Rust

nestedtext - Human readable and writable data interchange format

serde - Serialization framework for Rust

ytt - YAML templating tool that works on YAML structure instead of text

cue - CUE has moved to https://github.com/cue-lang/cue

crudini - A utility for manipulating ini files

libyaml-rust - LibYAML bindings for Rust

starlark-go - Starlark in Go: the Starlark configuration language, implemented in Go

json5 - JSON5 — JSON for Humans