Read and write YAML in Rust
Typed, fast, strict. from_str reads a document into a struct through serde. to_string writes it back. Anchors, merge keys, block scalars, custom tags and multi-document streams, handled. Strict mode names the field you probably meant.
Faster than every other pure-Rust YAML crate on every fixture measured. The benchmarks name the host, the toolchain and the command.
Replace serde_yaml without touching your source
One line. Zero changes. serde_yaml was archived in 2024. noyalib-serde-yaml keeps its API, its error text and its behaviour. Rename the package in Cargo.toml and you are done.
Format and validate in your build
Fail the build, not the deploy. noyafmt formats a tree in place, or checks it and exits non-zero. noyavalidate checks a document against a JSON Schema and fixes what it safely can. Signed binaries, a container, and Homebrew, Scoop and AUR.
See problems in your editor
Diagnostics as you type. noyalib-lsp works with VS Code, Zed, Neovim and any other client. Parse errors while you write. Formatting on save. Schema descriptions on hover.
Let an AI agent edit YAML safely
Byte-faithful edits. noyalib-mcp gives an assistant three tools: read a value, set it, update a document in a stream. Every write goes through the lossless tree. One line changes. Every comment stays.
Parse in the browser or at the edge
The same parser, in the tab. noyalib-wasm parses, serialises, validates and reads paths with no server and no network. The playground is this package, unchanged.