subset of YAML spec that parses much quicker.
  • Rust 92.5%
  • Python 7.5%
Find a file
alrie 15debe3568
All checks were successful
/ test (push) Successful in 15s
Test CI
2026-06-01 14:31:06 +02:00
.forgejo/workflows Test CI 2026-06-01 14:31:06 +02:00
benches Added flow scalars feature, made performance test 2026-06-01 02:07:07 +02:00
examples Implement spec and first rust parser 2026-05-31 13:51:09 +02:00
python Added flow scalars feature, made performance test 2026-06-01 02:07:07 +02:00
src Fixes and small improvements 2026-06-01 12:24:26 +02:00
tests Fixes and small improvements 2026-06-01 12:24:26 +02:00
.gitignore Fixed rust test bench 2026-05-31 23:36:46 +02:00
Cargo.toml Added flow scalars feature, made performance test 2026-06-01 02:07:07 +02:00
LICENSE Implement spec and first rust parser 2026-05-31 13:51:09 +02:00
perf_test.py Added flow scalars feature, made performance test 2026-06-01 02:07:07 +02:00
pyproject.toml Added python path for parser and python wheel build 2026-05-31 15:02:48 +02:00
README.md Edited README.md 2026-05-31 15:10:51 +02:00
spec.md Added flow scalars feature, made performance test 2026-06-01 02:07:07 +02:00

rapidYAML

Subset of YAML 1.2 built for parsing speed.

Implements a Rust parser with Rust and Python bindings.

Supports block maps, block sequences, and scalar types. Doesn't support i.e. anchors, flow collections, escape sequences.

Valid rapidYAML is guaranteed to be valid YAML.

Numbers

Profile rapidyaml (Python) PyYAML CLoader
Flat sequence 10.7M lines/s 344k lines/s
Deep tree 3.6M lines/s 99k lines/s

Usage

Python

import rapidyaml

obj = rapidyaml.load(text)  # → dict / list / str / int / float / bool / None

Rust

let value = rapidyaml::parse(input)?;

Status

Early. Base feature set works. Flow collections, multiline strings, and YAML 1.1 compatibility are opt-in features on the roadmap.

Built with PyO3 + maturin.