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+.