Tauri backend: - register_signal: persistent _signal connection, presence registration - place_call: send DirectCallOffer by fingerprint - answer_call: accept/reject incoming calls - get_signal_status: poll signal state Frontend: - Mode toggle: "Room" vs "Direct Call" - Register button → registers on relay signal channel - Incoming call panel with Accept/Reject - Fingerprint input + Call button - Auto-connect to media room on CallSetup event Also merges feat/android-voip-client into desktop branch: - Federation fixes, time-based dedup, FEC stale blocks - Direct calling protocol types - ACL + SAS verification Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
78 lines
1.7 KiB
TOML
78 lines
1.7 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/wzp-proto",
|
|
"crates/wzp-codec",
|
|
"crates/wzp-fec",
|
|
"crates/wzp-crypto",
|
|
"crates/wzp-transport",
|
|
"crates/wzp-relay",
|
|
"crates/wzp-client",
|
|
"crates/wzp-web",
|
|
"crates/wzp-android",
|
|
"desktop/src-tauri",
|
|
]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
license = "MIT OR Apache-2.0"
|
|
rust-version = "1.85"
|
|
|
|
[workspace.dependencies]
|
|
# Shared
|
|
bytes = "1"
|
|
thiserror = "2"
|
|
async-trait = "0.1"
|
|
tokio = { version = "1", features = ["full"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = "0.3"
|
|
serde = { version = "1", features = ["derive"] }
|
|
|
|
# Transport
|
|
quinn = "0.11"
|
|
|
|
# FEC
|
|
raptorq = "2"
|
|
|
|
# Codec
|
|
audiopus = "0.3.0-rc.0"
|
|
codec2 = "0.3"
|
|
|
|
# Crypto
|
|
x25519-dalek = { version = "2", features = ["static_secrets"] }
|
|
ed25519-dalek = { version = "2", features = ["rand_core", "pkcs8"] }
|
|
chacha20poly1305 = "0.10"
|
|
hkdf = "0.12"
|
|
sha2 = "0.10"
|
|
rand = "0.8"
|
|
|
|
# Workspace crates
|
|
wzp-proto = { path = "crates/wzp-proto" }
|
|
wzp-codec = { path = "crates/wzp-codec" }
|
|
wzp-fec = { path = "crates/wzp-fec" }
|
|
wzp-crypto = { path = "crates/wzp-crypto" }
|
|
wzp-transport = { path = "crates/wzp-transport" }
|
|
wzp-client = { path = "crates/wzp-client" }
|
|
|
|
# Fast dev profile: optimized but with debug info and incremental compilation.
|
|
# Use with: cargo run --profile dev-fast
|
|
[profile.dev-fast]
|
|
inherits = "dev"
|
|
opt-level = 2
|
|
|
|
# Optimize heavy compute deps even in debug builds —
|
|
# real-time audio needs < 20ms per frame, impossible unoptimized.
|
|
[profile.dev.package.nnnoiseless]
|
|
opt-level = 3
|
|
[profile.dev.package.audiopus_sys]
|
|
opt-level = 3
|
|
[profile.dev.package.audiopus]
|
|
opt-level = 3
|
|
[profile.dev.package.raptorq]
|
|
opt-level = 3
|
|
[profile.dev.package.wzp-codec]
|
|
opt-level = 3
|
|
[profile.dev.package.wzp-fec]
|
|
opt-level = 3
|