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-09-08 08:09 UTC (commit 565c170).
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.07x █████
1.28x █████
0.92x ████
1.00x ████
2.35x ██████████
multi_issuer_3_tokens
1.06x █████
1.20x █████
0.95x ████
1.00x ████
2.22x ██████████
multi_issuer_batch_10
1.02x █████
1.13x ██████
0.87x ████
1.00x █████
2.04x ██████████
multi_issuer_batch_25
1.02x █████
1.14x ██████
0.86x ████
1.00x █████
2.04x ██████████
multi_issuer_sig_status
skipped
skipped
skipped
skipped
skipped
unsigned_batch_10
1.05x ███
1.35x ████
0.79x ███
1.00x ███
3.02x ██████████
unsigned_batch_25
1.03x ████
1.28x ████
0.80x ███
1.00x ███
2.89x ██████████
unsigned_deep_json
1.09x ████
1.37x █████
0.90x ████
1.00x ████
2.52x ██████████
unsigned_simple
1.18x ███
1.77x ████
0.75x ██
1.00x ██
4.57x ██████████
Latency columns (Mean, p50, p95, p99, Min, Max) in the detail tables below are microseconds (µs).