#yaml #serialization #serde #serde-yaml

no-std cyrly

A serde-based YAML serializer for Rust with an unusual output style

1 unstable release

0.1.0 Apr 6, 2023

#1984 in Encoding

MIT license

30KB
785 lines

cyrly

A serde-based YAML serializer for Rust with an unusual output style.

Usage

cyrly::to_string(some_val)?

will prdouce something like

{
  { 42: 1336 }: "non-string keys",
  "three different string styles": [
    plain,
    "single-line strings",
    "\
      multi-line strings are\n\
      acceptably readable\n\
      \n\
      also, yaml 1.1/1.2 ambiguities are quoted:
    ",
    "oFf",
  ],
  look: "trailing comma",
}

Misc

I think this is better than X because Y:

  • JSON
    • Fewer "
    • Trailing commas,
    • Multiline
      strings
    • Support for non-string keys
  • YAML (as produced by normal serializers)
    • Not whitespace-indentation dependent
  • JSON5 / Hjson
    • Valid YAML, which is a much more common format, thus the output will be usable in many more places

Note that while the serializer attempts to be conservative where possible (e.g. always quoting maybe-keywords like no or on) and should always produce valid YAML, it is still somewhat unusual and may trouble some YAML deserialization implementations.

Dependencies

~155–410KB