Server: - PostgreSQL backend (Pool enum over Sqlite/PgPool, all storage methods dual-dialect) - E2EE for DM (4 new protobuf packets, handlers, storage of ciphertext only) - ChannelEdit packet + server-authoritative channel create/delete - Gateway → voice-node membership signaling via broadcast channel Client: - E2EE crypto (X25519 from Ed25519, HKDF, ChaCha20-Poly1305) + UI lock icons - E2EE net layer (PID 0x0071-0x0074, JSON payloads, dispatch, session handlers) - Slint migration: all .slint files, bridge.rs, update.rs, main.rs rewritten - Removed egui UI (~50 files) and all dead code (clean clippy -D warnings)
50 lines
1.3 KiB
TOML
50 lines
1.3 KiB
TOML
[package]
|
|
name = "vnox-gateway"
|
|
description = "VNOX gateway — auth, channels, sessions, permissions"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
repository.workspace = true
|
|
|
|
[lib]
|
|
name = "vnox_gateway"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "vnox-gateway"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
tokio.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
ed25519-dalek.workspace = true
|
|
x25519-dalek.workspace = true
|
|
chacha20poly1305.workspace = true
|
|
hkdf.workspace = true
|
|
sha2.workspace = true
|
|
argon2.workspace = true
|
|
rand.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
anyhow.workspace = true
|
|
thiserror.workspace = true
|
|
toml.workspace = true
|
|
uuid.workspace = true
|
|
hex.workspace = true
|
|
|
|
axum = { version = "0.8", features = ["ws"] }
|
|
tower = "0.5"
|
|
sqlx = { version = "0.9", features = ["sqlite", "postgres", "runtime-tokio", "tls-rustls"] }
|
|
bitflags = "2"
|
|
prost = "0.13"
|
|
|
|
# TLS 1.3 support
|
|
rustls-pki-types = "1"
|
|
rustls = "0.23"
|
|
tokio-rustls = "0.26"
|
|
rcgen = "0.13"
|
|
|
|
[build-dependencies]
|
|
prost-build = "0.13"
|