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-11-01 10:04 UTC (commit 74e3197).
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
0.57x █████
1.03x ████████
1.17x █████████
1.00x ████████
1.26x ██████████
multi_issuer_3_tokens
0.59x █████
0.99x █████████
1.16x ██████████
1.00x █████████
1.08x █████████
multi_issuer_batch_10
0.56x █████
0.86x ████████
1.13x ██████████
1.00x █████████
1.05x █████████
multi_issuer_batch_25
0.58x █████
0.85x ████████
1.12x ██████████
1.00x █████████
1.01x █████████
multi_issuer_sig_status
skipped
skipped
skipped
skipped
skipped
unsigned_batch_10
0.61x ████
1.26x ████████
1.27x ████████
1.00x ██████
1.56x ██████████
unsigned_batch_25
0.61x ████
1.21x ████████
1.24x ████████
1.00x ██████
1.55x ██████████
unsigned_deep_json
0.56x █████
1.05x █████████
1.15x █████████
1.00x ████████
1.22x ██████████
unsigned_simple
0.58x ██
1.37x ██████
1.29x █████
1.00x ████
2.37x ██████████
Latency columns (Mean, p50, p95, p99, Min, Max) in the detail tables below are microseconds (µs).