Initial commit: split VNOX monorepo into VNOX-Server
Unified server binary (vnox-serverd) combining: - Gateway (TCP, auth, channels, sessions, SQLite) - Voice-node (UDP relay, Opus, jitter buffer) Standalone gateway (vnox-gateway) and voice-node (vnox-voice-node) preserved as sub-crates.
This commit is contained in:
commit
e751e0bf5b
94 changed files with 9771 additions and 0 deletions
32
.github/.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
32
.github/.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Something is broken
|
||||
labels: bug
|
||||
---
|
||||
|
||||
## What happened
|
||||
|
||||
<!-- Describe the bug clearly -->
|
||||
|
||||
## Expected behavior
|
||||
|
||||
<!-- What should have happened -->
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
## Environment
|
||||
|
||||
- OS:
|
||||
- VNOX version:
|
||||
- LNEx version:
|
||||
- Install method: Docker / systemd / binary / built from source
|
||||
|
||||
## Logs
|
||||
|
||||
```
|
||||
paste relevant log lines here (VNOX_LOG=debug)
|
||||
```
|
||||
25
.github/.github/ISSUE_TEMPLATE/protocol.md
vendored
Normal file
25
.github/.github/ISSUE_TEMPLATE/protocol.md
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
name: Protocol change proposal
|
||||
about: Propose a change to LNEx protocol
|
||||
labels: protocol
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
<!-- One paragraph: what changes and why -->
|
||||
|
||||
## Motivation
|
||||
|
||||
<!-- What problem does this solve? -->
|
||||
|
||||
## Proposed change
|
||||
|
||||
<!-- Be specific: packet format, new packet type, behavior change -->
|
||||
|
||||
## Backward compatibility
|
||||
|
||||
<!-- Is this a breaking change? How should old clients/servers behave? -->
|
||||
|
||||
## Alternatives considered
|
||||
|
||||
<!-- What else did you consider? -->
|
||||
68
.github/.github/repo-metadata.md
vendored
Normal file
68
.github/.github/repo-metadata.md
vendored
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
# Vnox Repository Metadata
|
||||
|
||||
## Description
|
||||
Self-hosted realtime voice and chat platform. Decentralized, lightweight, and moddable. Built on LNEx, a custom protocol for low-latency federated communication. Not Discord. Not TeamSpeak. Not cloud.
|
||||
|
||||
## Topics / Tags
|
||||
- communication
|
||||
- voice-chat
|
||||
- rust
|
||||
- self-hosted
|
||||
- decentralized
|
||||
- real-time
|
||||
- low-latency
|
||||
- protocol
|
||||
- federated
|
||||
- lightweight
|
||||
- moddable
|
||||
- open-source
|
||||
- p2p
|
||||
- networking
|
||||
- gateway
|
||||
- voice-relay
|
||||
- chat
|
||||
- lnex
|
||||
|
||||
## Short Descriptions
|
||||
|
||||
### Primary (for GitHub repo description)
|
||||
Self-hosted realtime voice and chat on a custom low-latency protocol. Decentralized, lightweight, and extensible.
|
||||
|
||||
### Secondary Options
|
||||
- Decentralized alternative to Discord for self-hosted deployment
|
||||
- Low-latency federated communication platform with custom LNEx protocol
|
||||
- Open-source voice and chat server written in Rust
|
||||
|
||||
## Key Features
|
||||
- Self-hosted deployment
|
||||
- Decentralized architecture
|
||||
- Real-time voice and text communication
|
||||
- Low-latency protocol (LNEx)
|
||||
- Lightweight footprint
|
||||
- Extensible/moddable design
|
||||
- Federation support (Phase 3 roadmap)
|
||||
- Desktop client with egui UI
|
||||
- SQLite/PostgreSQL backend support
|
||||
|
||||
## Technology Stack
|
||||
- **Language**: Rust (99.6%)
|
||||
- **Protocol**: LNEx (custom)
|
||||
- **Audio**: Opus codec
|
||||
- **Database**: SQLite (with PostgreSQL support planned)
|
||||
- **UI**: egui (desktop client)
|
||||
- **Transport**: TCP (gateway), UDP (voice relay)
|
||||
|
||||
## Current Status
|
||||
- Phase 1: Implemented, not production-ready
|
||||
- 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
|
||||
- Federation: 🔄 Planned (Phase 3)
|
||||
- Mobile client: 🔄 Planned (Phase 3)
|
||||
|
||||
⚠️ **Security Warning**: Traffic in v0.1.x is unencrypted plaintext. Do not use in production.
|
||||
|
||||
## License
|
||||
- **Code**: GPL-3.0
|
||||
- **Protocol**: CC0 (Public Domain)
|
||||
47
.github/.github/workflows/ci.yml
vendored
Normal file
47
.github/.github/workflows/ci.yml
vendored
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main, dev]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
RUST_BACKTRACE: 1
|
||||
|
||||
jobs:
|
||||
check:
|
||||
name: Check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install Rust stable
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
components: rustfmt, clippy
|
||||
|
||||
- name: Install system deps
|
||||
run: sudo apt-get install -y libasound2-dev libopus-dev pkg-config
|
||||
|
||||
- name: Cache cargo
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
|
||||
- name: cargo fmt
|
||||
run: cargo fmt --all -- --check
|
||||
|
||||
- name: cargo clippy
|
||||
run: cargo clippy --all-targets --all-features -- -D warnings
|
||||
|
||||
- name: cargo build
|
||||
run: cargo build --all
|
||||
|
||||
- name: cargo test
|
||||
run: cargo test --workspace
|
||||
Loading…
Add table
Add a link
Reference in a new issue