Bindings parity matrix
Confium ships three language bindings (Ruby, Python, WASM) plus the Rust API. Each binding is at a different level of completeness. This page is the single source of truth for “which binding exposes which feature”.
Coverage matrix
| Subsystem | Rust | Ruby | Python | WASM |
|---|---|---|---|---|
| Composite verify (Ed25519) | ✅ | ✅ | ✅ | ✅ |
| Composite verify (ECDSA-P256) | ✅ | ✅ | ✅ | ✅ |
| Composite sign (Ed25519) | ✅ | ✅ | ✅ | ➖ |
| Composite sign (ECDSA-P256) | ✅ | ✅ | ✅ | ➖ |
| Composite custom verifier callback | ✅ | ✅ | ✅ | ➖ |
| Transparency append | ✅ | ✅ | ✅ | ✅ |
| Transparency inclusion proof | ✅ | ✅ | ✅ | ✅ |
| Transparency consistency proof | ✅ | ✅ | ✅ | ✅ |
| Transparency compute_leaf_hash | ✅ | ✅ | ✅ | ✅ |
| Transparency verify_inclusion_with_leaf | ✅ | ✅ | ✅ | ✅ |
| PKI Certificate parse (DER/PEM) | ✅ | ✅ | ✅ | ✅ |
| PKI CSR parse (DER/PEM) | ✅ | ✅ | ✅ | ✅ |
| PKI CMS SignedData parse (JSON) | ✅ | ✅ | ✅ | ✅ |
| PKI CMS SignedData verify | ✅ | ✅ | ✅ | ✅ |
| PKI CMS SignedData build/sign | ✅ | ✅ | ✅ | ➖ |
| PKI CMS SignedData DER encode | ✅ | ✅ | ✅ | ➖ |
| PKI XMLDSig canonicalize | ✅ | ✅ | ✅ | ✅ |
| Attributes predicate parse | ✅ | ✅ | ✅ | ✅ |
| Attributes evaluate | ✅ | ✅ | ✅ | ✅ |
| Identity Actor | ✅ | ✅ | ✅ | ➖ |
| Config Manifest | ✅ | ✅ | ✅ | ➖ |
| TC FROST-P256 (Shamir + ECDSA) | ✅ | ✅ | ❌ | ➖ |
| TC ElGamal-P256 (threshold enc) | ✅ | ✅ | ❌ | ➖ |
| TC CMP20 | ✅ | ❌ | ❌ | ➖ |
| TC GG18 | ✅ | ❌ | ❌ | ➖ |
| OTS anchor | ✅ | ✅ | ✅ | ➖ |
| ERS archival | ✅ | ❌ | ✅ | ➖ |
Legend
- ✅ — shipped, real implementation, spec’d
- ❌ — not exposed in this binding (yet)
- ➖ — by design not exposed (WASM is verifier-only: browsers verify, servers sign)
How to read this table
- Downstream users: pick a binding based on the features you need. Ruby is the most complete; Python covers verification + parsing; WASM is verifier-only by design (browsers verify, servers sign).
- Binding authors: when adding a feature to one binding, update this matrix in the same PR.
- Long-term plan: any row with mixed ✅/❌ is a candidate for parity work.
See
not yet implemented.completion/for in-flight items.
Binding-specific notes
Python
Built on PyO3 0.22. Targets Python 3.9+. Ships as a native wheel
(pip install confium). Source: crates/confium-python/ in the main
Rust workspace.
Ruby
Built on magnus 0.8 + rb_sys. Targets MRI 3.0+. Ships as a
gem (gem install confium). Source: github.com/confium/confium-ruby.
Most complete binding: composite sign + verify, CMS build/sign +
DER encode, transparency inclusion + consistency proof + verify,
attributes DSL, TC sessions (FROST-P256, ElGamal-P256), identity
actor, deployment manifest. Ships against confium-transparency 0.4
on crates.io.
WASM
Built on wasm-bindgen. Targets wasm32-unknown-unknown.
Verifier-only by design — browsers verify, servers sign. Ships as
@confium/confium-wasm on npm. Source: crates/confium-wasm/ in the
main Rust workspace.
Rust
The native API. Every other binding wraps this. Source: the 65-crate workspace at the repo root.
See also
- Python binding guide
- Workspace map for the 44 Rust crates
- Architecture for the layered model