Files
TS3-vibed/File_Structure.md
2026-05-03 10:50:25 +02:00

51 lines
3.7 KiB
Markdown

voice_app/
├── Cargo.toml # Workspace manifest; links all crates
├── .gitignore # Exclude /target, .env, and binary/database files
├── core_protocol/ # Shared binary logic and network Enums
│ ├── Cargo.toml # deps: serde, bincode, uuid, chrono
│ └── src/
│ ├── lib.rs # Exports modules
│ ├── tcp_events.rs # Enums for reliable Auth/Chat/Admin events
│ ├── udp_packets.rs # Structs for VoiceFrame headers and payload
│ └── constants.rs # Fixed specs: 48kHz, 20ms frame (960 samples)
├── server_node/ # Headless relay, DB host, and Web Admin dashboard
│ ├── Cargo.toml # deps: tokio, sqlx, axum, rust-embed, argon2, jwt
│ ├── migrations/ # SQLx .sql scripts for SQLite schema persistence
│ ├── web_dashboard/ # Admin UI source (HTML/CSS/JS) for embedding
│ └── src/
│ ├── main.rs # Entry: Spawns TCP(8080), UDP(8080), HTTP(8081) tasks
│ ├── state.rs # Live concurrent State: DashMap tracking
│ ├── database.rs # SQLite logic: Auth and Persistent settings
│ ├── tcp_router.rs # Logic for reliable control lanes
│ ├── udp_relay.rs # High-speed voice packet forwarding
│ ├── web_api.rs # Axum REST API and embedded file serving
│ └── auth_service.rs # Argon2 hashing and JWT token generation
├── client_node/ # Desktop application, audio engine, and plugin host
│ ├── Cargo.toml # deps: eframe, cpal, audiopus, webrtc-dsp, extism
│ └── src/
│ ├── main.rs # Entry: Initializes eframe and background Tokio runtime
│ ├── app_state.rs # Actor Pattern bridge for non-blocking UI/Net
│ ├── ui/ # egui Graphical Interface
│ │ ├── layout.rs # Main window shell
│ │ ├── side_panel.rs # Channel tree and connection UI
│ │ └── chat_area.rs # Text messages and system logs
│ ├── network/ # Internet connectivity modules
│ │ ├── control.rs # TCP: TLS, Heartbeats, Auto-reconnect
│ │ └── voice.rs # UDP: Jitter buffer (40ms), Seq ordering, Decryption
│ ├── audio/ # Real-time pipeline with 20ms frames
│ │ ├── capture.rs # Microphone -> Lock-free Ringbuffer
│ │ ├── dsp.rs # Noise suppression & Echo cancellation (WebRTC)
│ │ ├── codec.rs # Opus Encoding/Decoding (48kbps VBR)
│ │ └── playback.rs # Ringbuffer -> Speaker output
│ └── plugins/ # Wasm Extension Sandbox
│ ├── runtime.rs # Extism Wasm runtime initialization
│ └── hooks.rs # Event triggers: OnVoice, OnMessage, OnJoin
├── deploy/ # Automation and containerization assets
│ ├── Dockerfile # Multi-stage build for tiny server images
│ ├── docker-compose.yml # One-click deployment for Docker/NAS users
│ └── voice_app.service # Systemd unit file for Linux hosting
├── scripts/ # Zero-conf installation scripts
│ ├── install.sh # Linux "One-liner" installer (curl | bash)
│ └── update.sh # Automated binary fetcher from GitHub
└── config/
└── default_config.toml # Default ports, SQLite paths, and network settings