No description
Find a file
loki5512344 742cf03a5f
Phase 2: PostgreSQL, E2EE, channel CRUD, voice signaling, Slint migration
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)
2026-07-14 13:25:14 +02:00
.cargo Initial commit: split VNOX monorepo into VNOX-Server 2026-07-09 11:52:56 +02:00
.github/.github Initial commit: split VNOX monorepo into VNOX-Server 2026-07-09 11:52:56 +02:00
dev fix dev/ directory nesting 2026-07-09 12:33:17 +02:00
docs add docs, protocol, plugins, README, CHANGELOG 2026-07-09 12:30:55 +02:00
gateway Phase 2: PostgreSQL, E2EE, channel CRUD, voice signaling, Slint migration 2026-07-14 13:25:14 +02:00
plugins/examples/modbot add docs, protocol, plugins, README, CHANGELOG 2026-07-09 12:30:55 +02:00
protocol Phase 2: PostgreSQL, E2EE, channel CRUD, voice signaling, Slint migration 2026-07-14 13:25:14 +02:00
serverd Phase 2: PostgreSQL, E2EE, channel CRUD, voice signaling, Slint migration 2026-07-14 13:25:14 +02:00
voice-node Phase 2: PostgreSQL, E2EE, channel CRUD, voice signaling, Slint migration 2026-07-14 13:25:14 +02:00
.gitignore Initial commit: split VNOX monorepo into VNOX-Server 2026-07-09 11:52:56 +02:00
Cargo.lock Phase 2: PostgreSQL, E2EE, channel CRUD, voice signaling, Slint migration 2026-07-14 13:25:14 +02:00
Cargo.toml Initial commit: split VNOX monorepo into VNOX-Server 2026-07-09 11:52:56 +02:00
CHANGELOG.md add docs, protocol, plugins, README, CHANGELOG 2026-07-09 12:30:55 +02:00
docker-compose.yml Initial commit: split VNOX monorepo into VNOX-Server 2026-07-09 11:52:56 +02:00
Dockerfile Initial commit: split VNOX monorepo into VNOX-Server 2026-07-09 11:52:56 +02:00
Dockerfile.voice-node Initial commit: split VNOX monorepo into VNOX-Server 2026-07-09 11:52:56 +02:00
LICENSE add GPL-3.0 license 2026-07-09 12:05:04 +02:00
README.md add docs, protocol, plugins, README, CHANGELOG 2026-07-09 12:30:55 +02:00

VNOX

Self-hosted realtime voice and chat. Decentralized. Lightweight. Moddable. Built on LNEx, a custom protocol for low-latency federated communication.

Not Discord. Not TeamSpeak. Not cloud.

vnox://server/channel

Status

Phase 1: implemented, not production ready.

See docs/00-status.md for an honest list of what works, what is only specified on paper, and known gaps.

Component Status
Gateway TCP listener, LNEx handshake, channels, chat, SQLite
Voice node UDP relay, voice packet routing
Desktop client egui UI, net layer, audio pipeline (partial)
LNEx protocol Specified and implemented (JSON in Phase 1)
Federation Planned (Phase 3)
Mobile client Planned (Phase 3)

Traffic in v0.1.x is unencrypted plaintext. Do not use in production.

Running locally

Requires Rust 1.85+.

# terminal 1 - gateway
cargo run -p vnox-gateway -- --config dev/config.toml

# terminal 2 - voice node
cargo run -p vnox-voice-node -- --config dev/config.toml

# terminal 3 - client
cargo run -p vnox-client

The client connects to 127.0.0.1:7600 by default (editable in the UI). Config details: dev/README.md.

Opus on Windows

audiopus_sys builds libopus from source via CMake. CMake 4.x requires a policy flag, already set in .cargo/config.toml:

[env]
CMAKE_POLICY_VERSION_MINIMUM = "3.5"

No manual steps needed.

License

GPL-3.0. See docs/LICENSE.md.

The LNEx protocol specification is CC0 (public domain).