Skip to content

Latest benchmark run

Generated from the most recent benchmark run. This page is written by CI — see scripts/bench-to-json.py — and is not the curated baseline. For the reviewed figures, with their caveats and methodology, see Baseline.

⚠ This run is marked degraded — do not cite it

Host was executing roughly 8x slow: every figure comparable to the 2026-06-03 baseline came out 4.57x-20.89x slower, including third-party serde_json, and a pure single-core loop took 5.19s against ~0.4s expected. Ratios between libraries are indicative; absolute times are not usable. Replaced automatically by the first clean CI run.

Generated2026-08-01T06:56:12Z
Commitdaf377c on main
Toolchainrustc 1.97.1 (8bab26f4f 2026-07-14)
PlatformDarwin 24.6.0 x86_64
Runnerlocal workstation (Intel Xeon W-2150B @ 3.00GHz, 10c/20t)
Measurements77

Relative performance

Each cell is the library's time divided by glaucus's on the same fixture, so above 1.00x means slower than glaucus and below means faster. Ratios lead here because they survive runner noise: every library in a group is measured on the same machine in the same run, so a host-wide slowdown largely cancels out of the ratio even when it wrecks the absolute times.

composer

Librarysmallmediumlarge
glaucus (baseline)1.00x1.00x1.00x
rust_yaml2.21x4.15x53.27x
yaml_rust21.34x1.47x1.47x

emitter

Librarysmallmediumlarge
glaucus (baseline)1.00x1.00x1.00x
rust_yaml10.22x12.32x15.99x
yaml_rust22.39x1.94x2.09x

full_pipeline_node

Librarysmallmediumlarge
compose_all
facade

parser

Librarysmallmediumlarge
glaucus (baseline)1.00x1.00x1.00x
yaml_rust21.11x1.27x1.24x

roundtrip_compare

Librarysmallmediumlarge
glaucus (baseline)1.00x1.00x1.00x
rust_yaml3.00x5.05x49.25x
yaml_rust21.47x1.53x1.51x

scanner

Librarysmallmediumlarge
glaucus (baseline)1.00x1.00x1.00x

serde_deserialize

Librarysmallmediumlarge
glaucus (baseline)1.00x1.00x1.00x
noyalib1.05x1.03x1.01x
serde_json0.13x0.14x0.12x
serde_saphyr2.30x2.30x2.31x
serde_yaml_ng1.31x1.40x1.33x

serde_serialize

Librarysmallmediumlarge
glaucus (baseline)1.00x1.00x1.00x
noyalib1.51x1.29x1.09x
serde_json0.30x0.29x0.24x
serde_saphyr2.43x2.05x1.74x
serde_yaml_ng3.42x2.89x2.39x

Absolute times

Medians. Treat these as indicative unless the run is known to come from a quiet, dedicated machine — shared CI runners routinely vary by tens of percent between runs, which is why the ratios above are the figures worth tracking.

composer

Librarysmallmediumlarge
glaucus218.21 µs2.02 ms101.92 ms
rust_yaml481.88 µs8.37 ms5429.20 ms
yaml_rust2292.98 µs2.96 ms149.68 ms

emitter

Librarysmallmediumlarge
glaucus20.21 µs249.64 µs11.78 ms
rust_yaml206.55 µs3.07 ms188.44 ms
yaml_rust248.32 µs483.79 µs24.65 ms

full_pipeline_node

Librarysmallmediumlarge
compose_all221.26 µs2.05 ms102.88 ms
facade211.89 µs2.04 ms102.71 ms

parser

Librarysmallmediumlarge
glaucus161.60 µs1.47 ms74.32 ms
yaml_rust2178.95 µs1.87 ms92.45 ms

roundtrip_compare

Librarysmallmediumlarge
glaucus234.43 µs2.30 ms115.20 ms
rust_yaml702.81 µs11.64 ms5673.80 ms
yaml_rust2345.48 µs3.52 ms174.07 ms

scanner

Librarysmallmediumlarge
glaucus70.59 µs706.95 µs35.09 ms

serde_deserialize

Librarysmallmediumlarge
glaucus234.79 µs2.27 ms114.13 ms
noyalib247.05 µs2.33 ms115.35 ms
serde_json29.71 µs314.42 µs14.11 ms
serde_saphyr540.81 µs5.21 ms263.83 ms
serde_yaml_ng306.70 µs3.18 ms151.26 ms

serde_serialize

Librarysmallmediumlarge
glaucus43.25 µs525.33 µs30.14 ms
noyalib65.23 µs679.35 µs32.85 ms
serde_json12.78 µs154.82 µs7.19 ms
serde_saphyr105.13 µs1.08 ms52.50 ms
serde_yaml_ng147.92 µs1.52 ms72.15 ms

Single-implementation groups

Groups whose benchmark ids carry no library segment — glaucus-only paths, with no competitor to compare against.

roundtrip_node

CaseMedianSpread
small448.59 µs±0.9%
medium4.39 ms±0.8%
large216.68 ms±0.8%

typed_struct

CaseMedianSpread
deserialize227.79 µs±1.2%
roundtrip270.59 µs±1.4%

Code released under MIT OR Apache-2.0. Documentation under CC-BY-3.0+.