Move quicnprotochat-p2p to workspace.exclude so ~90 iroh-only dependencies are not compiled in the default build. Narrow tokio features from "full" to the subset actually used. The p2p crate now pins its own dependency versions since it is outside the workspace. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
82 lines
4.5 KiB
TOML
82 lines
4.5 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/quicnprotochat-core",
|
|
"crates/quicnprotochat-proto",
|
|
"crates/quicnprotochat-server",
|
|
"crates/quicnprotochat-client",
|
|
"crates/quicnprotochat-gui",
|
|
]
|
|
# P2P-Crate (iroh-Transport) ist vom Default-Build ausgeschlossen,
|
|
# um ~90 exklusive iroh-Dependencies nicht mitzukompilieren.
|
|
# Quellcode bleibt im Repo für spätere Integration.
|
|
exclude = ["crates/quicnprotochat-p2p"]
|
|
|
|
# Shared dependency versions — bump here to affect the whole workspace.
|
|
[workspace.dependencies]
|
|
|
|
# ── Crypto ────────────────────────────────────────────────────────────────────
|
|
openmls = { version = "0.5", default-features = false, features = ["crypto-subtle"] }
|
|
openmls_rust_crypto = { version = "0.2" }
|
|
openmls_traits = { version = "0.2" }
|
|
# tls_codec must match the version used by openmls 0.5 (which uses 0.3) to avoid
|
|
# duplicate Serialize trait versions in the dependency graph.
|
|
tls_codec = { version = "0.3", features = ["derive"] }
|
|
# ml-kem 0.2 is the current stable release (FIPS 203, ML-KEM-768).
|
|
# All three parameter sets (512/768/1024) are compiled in by default — no feature flag needed.
|
|
ml-kem = { version = "0.2" }
|
|
x25519-dalek = { version = "2", features = ["static_secrets"] }
|
|
ed25519-dalek = { version = "2", features = ["rand_core"] }
|
|
sha2 = { version = "0.10" }
|
|
hkdf = { version = "0.12" }
|
|
chacha20poly1305 = { version = "0.10" }
|
|
opaque-ke = { version = "4", features = ["ristretto255", "argon2"] }
|
|
zeroize = { version = "1", features = ["derive", "serde"] }
|
|
subtle = { version = "2" }
|
|
argon2 = { version = "0.5" }
|
|
rand = { version = "0.8" }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = { version = "1" }
|
|
bincode = { version = "1" }
|
|
|
|
# ── Serialisation + RPC ───────────────────────────────────────────────────────
|
|
capnp = { version = "0.19" }
|
|
capnp-rpc = { version = "0.19" }
|
|
|
|
# ── Async / networking ────────────────────────────────────────────────────────
|
|
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time", "sync", "signal", "io-util", "io-std"] }
|
|
tokio-util = { version = "0.7", features = ["codec", "compat"] }
|
|
futures = { version = "0.3" }
|
|
quinn = { version = "0.11" }
|
|
quinn-proto = { version = "0.11" }
|
|
rustls = { version = "0.23", default-features = false, features = ["std", "ring"] }
|
|
rcgen = { version = "0.13" }
|
|
|
|
# ── Database ─────────────────────────────────────────────────────────────
|
|
rusqlite = { version = "0.31", features = ["bundled-sqlcipher"] }
|
|
|
|
# ── Server utilities ──────────────────────────────────────────────────────────
|
|
dashmap = { version = "5" }
|
|
tracing = { version = "0.1" }
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
|
|
# ── Error handling ────────────────────────────────────────────────────────────
|
|
anyhow = { version = "1" }
|
|
thiserror = { version = "1" }
|
|
|
|
# ── CLI ───────────────────────────────────────────────────────────────────────
|
|
clap = { version = "4", features = ["derive", "env"] }
|
|
|
|
# ── Build-time ────────────────────────────────────────────────────────────────
|
|
capnpc = { version = "0.19" }
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
strip = "symbols"
|
|
|
|
[profile.dev]
|
|
opt-level = 0
|
|
debug = true
|