Looking up between financial district towers against a clear sky.

Solutions

Whatever you do with YAML. Done right.

Six ways to reach one parser, each aimed at a job people actually have.

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.

Read the developer docs.

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.

See the one-line migration.

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.

Set up the command line.

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.

Configure your editor.

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.

Set up the agent tooling.

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.

Try it in the browser.