Migrating from 0.3 to 0.4
0.4 extracts the confium-tc god-crate into focused sub-crates
(confium-tc-core, confium-coordinator, confium-tc-keys,
confium-crypto-vss, confium-crypto-zk, confium-privacy,
confium-observability, confium-pki-tc). The confium-tc facade
stays in place and its re-exports are NOT yet deprecated — they
will be in 0.5, and removed in 0.6.
Status: Draft — the extracted sub-crates shipped in 0.4.0 (currently 0.4.7); deprecation of the facade re-exports is queued for 0.5. This guide is for consumers who want to switch to the focused crates now.
What changed in 0.4
Extracted sub-crates available
New consumers can depend directly on the extracted crates:
| Old path | New path |
|---|---|
confium_tc::coordinator |
confium_coordinator |
confium_tc::paillier |
confium_crypto_vss::paillier |
confium_tc::share_envelope |
confium_tc_core::share_envelope |
confium_tc::session, message, party, registry, share |
confium_tc_core::* |
confium_tc::ring_sig (in progress) |
confium_privacy::ring_sig |
Scheme crates (confium-tc-cmp20, -gg18, -frost-*) still depend
on confium-tc because they need paillier (which lives there).
Moving paillier into confium-crypto-vss is queued for 0.5 as
part of P1 #56 as part of the remaining-work catalog.
confium-tc facade re-exports NOT deprecated yet
The pub use re-exports in confium-tc/src/lib.rs continue to work
without warnings. Deprecation is queued for 0.5.
Today, consumers can choose either path.
Cargo features
confium-tc doesn’t yet have product-aligned Cargo featuresqueued for 0.5). For per-product feature gating
today, depend on the product facades (confium-threshold,
confium-pki, confium-keyless, etc.).
Migration steps
- Audit your imports — anywhere you write
confium_tc::X, check whetherXis now in an extracted crate via the table above. - Switch imports where the extracted crate is the better home. The facade still re-exports everything, so a mix is fine.
- For new code, depend on the focused crate directly. The build
time win is significant: scheme crates that switch from
confium-tc(27K lines) toconfium-tc-core(5K lines) see 4-5x faster incremental builds.
Why we’re doing this
confium-tc was a 120-module god-crate. The 0.4 restructuring
extracted 8 focused crates but kept confium-tc as a thin facade
for back-compat. In 0.5 we’ll deprecate the facade to signal the
new shape. In 0.6 the facade is emptied.
The benefit: new consumers depend on focused crates (5K lines each), not the 27K-line facade. Build times drop; dependency graphs shrink; crate boundaries become real.
Need help
Open a Discussion tagged migration-help.