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-02 17:54 UTC (commit 6fd3f26).
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.29x ███
1.30x ███
1.82x ████
1.00x ██
4.27x ██████████
multi_issuer_3_tokens
1.25x ████
1.33x ████
1.75x █████
1.00x ███
3.52x ██████████
multi_issuer_batch_10
1.22x ███
1.27x ████
1.74x █████
1.00x ███
3.58x ██████████
multi_issuer_batch_25
1.23x ███
1.35x ████
1.77x █████
1.00x ███
3.65x ██████████
multi_issuer_sig_status
skipped
skipped
skipped
skipped
skipped
unsigned_batch_10
1.20x ██
1.70x ███
1.87x ███
1.00x ██
5.66x ██████████
unsigned_batch_25
1.09x ██
1.49x ███
1.68x ███
1.00x ██
5.06x ██████████
unsigned_deep_json
1.26x ███
1.48x ███
1.90x ████
1.00x ██
4.78x ██████████
unsigned_simple
1.22x █
1.78x ██
1.93x ██
1.00x █
10.88x ██████████
Latency columns (Mean, p50, p95, p99, Min, Max) in the detail tables below are microseconds (µs).