-
Notifications
You must be signed in to change notification settings - Fork 12
STATE
magicint1337 edited this page Jan 13, 2026
·
6 revisions
sequenceDiagram
participant DSP as DSP thread
participant WS as Tokio WS tasks
participant State as Shared State
WS->>State: register clients (audio/waterfall/events/chat)
DSP->>State: read client params (audio is lock-free)
DSP->>WS: push encoded packets to per-client channels
WS->>Client: websocket send
Implementation: crates/novasdr-server/src/state.rs
-
DashMapfor client registries (fast concurrent access) - Audio params stored in atomics (DSP reads lock-free)
- Per-client
Mutexfor DSP pipelines (and waterfall params) - Atomic counters for bitrate accounting
config/overlays/markers.json is polled periodically and embedded into the initial settings JSON.
NovaSDR is GPL-3.0-only. See Licensing.