Cross-platform authorization benchmarks for the Cedarling bindings,
regenerated on pushes to main that change jans-cedarling/**,
or on a manual workflow_dispatch run against main.
Last updated: 2026-10-27 11:20 UTC (commit d19798a).
Each binding is measured on its own GitHub-hosted ubuntu-latest runner.
Runners are provisioned fresh per binding, so cross-binding comparisons are
unpaired and subject to per-runner variance; read cross-binding ratios as
directional rather than exact, especially for closely-matched bindings.
Warm-up iterations per scenario: 100; measured (sample count) per scenario: 1000.
Note:unsigned_batch_* and multi_issuer_batch_* measure the full batch call, not per-item latency.
Relative speed per scenario (x vs Rust, lower = faster)#
Ratios use each binding's full-precision mean_ns over Rust's, so they may not match dividing the rounded µs values shown above. Rows where Rust is unavailable use the fastest binding as the baseline.
Scenario
c
go
python
rust
wasm
multi_issuer_2_tokens
1.06x █████
0.53x ██
1.02x █████
1.00x █████
2.17x ██████████
multi_issuer_3_tokens
1.05x █████
0.54x ███
1.02x █████
1.00x █████
2.00x ██████████
multi_issuer_batch_10
1.02x █████
0.56x ███
1.03x █████
1.00x █████
2.07x ██████████
multi_issuer_batch_25
1.02x █████
0.57x ███
1.01x █████
1.00x █████
1.99x ██████████
multi_issuer_sig_status
skipped
skipped
skipped
skipped
skipped
unsigned_batch_10
1.07x ███
0.74x ██
1.07x ███
1.00x ███
3.35x ██████████
unsigned_batch_25
1.10x ███
0.77x ██
1.08x ███
1.00x ███
3.36x ██████████
unsigned_deep_json
1.13x █████
0.64x ███
1.06x ████
1.00x ████
2.44x ██████████
unsigned_simple
1.39x ██
0.71x █
1.11x ██
1.00x ██
5.88x ██████████
Latency columns (Mean, p50, p95, p99, Min, Max) in the detail tables below are microseconds (µs).