ryl¶
A fast YAML linter, written in Rust¶
-
Built for speed
Written in Rust for fast lint runs across large YAML trees.
-
yamllint-compatible
Drop-in compatible rule set with the rules and behaviour of
yamllint, plus ryl-specific options. -
Auto-fixes
Apply safe automatic fixes for spacing, line endings, quoting, and more with
ryl --fix. -
Easy to install
Single binary, distributed via Cargo, pip, and npm. No runtime dependencies.
Quick start¶
# Install with Cargo
cargo install ryl
# Or with pip
pip install ryl
# Or with npm
npm install --global @owenlamont/ryl
# Lint a file or directory
ryl path/to/file.yaml
ryl .
YAML version compatibility¶
ryl targets YAML 1.2 strictly because it is built on the
saphyr parser. yamllint defaults
to YAML 1.1 semantics via PyYAML, so a handful of edge cases —
notably bareword booleans like yes / no / on / off and
leading-zero integers like 0755 — behave differently. The same
1.2 semantics apply to .yamllint configuration files.
See YAML version compatibility for the practical implications and how to adjust a configuration migrated from yamllint.
Why ryl¶
ryl started as a fast Rust port of yamllint focused on parity with its rule set and message text. The aim is to keep yamllint compatibility as a foundation while adding ergonomic features yamllint does not currently offer — for example richer TOML configuration, auto-fix support for spacing and quoting rules, and tighter integration with SchemaStore.
When a rule mirrors yamllint, the rule reference page links back to the upstream documentation so you can confirm exact semantics. ryl-specific options are called out explicitly so they cannot be mistaken for upstream behaviour.
Next steps¶
-
Cargo, pip, npm, or a prebuilt binary.
-
Lint a project in under a minute.
-
Every rule, with examples and fixable status.
-
default,relaxed, andemptyas TOML or YAML.