83c23401fc098350b6c285e2580f605628b9b073
Convert ASCII art and box-drawing diagrams to Mermaid fenced code blocks across README.md, CLAUDE.md, Architecture.md, Wxsat-Map-Overlay.md, and trx-wxsat/README.md. Add Mermaid-only policy to CLAUDE.md. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Stan Grams <sjg@haxx.space>
trx-rs splits radio hardware access from user-facing interfaces so you can run
rig control, SDR DSP, decoding, audio streaming, and web access as separate,
composable pieces.
| Backends | Yaesu FT-817, Yaesu FT-450D, SoapySDR |
| Frontends | Web UI, rigctl-compatible TCP, JSON-over-TCP |
| Decoders | AIS, APRS, CW, FT8, RDS, VDES, WSPR |
| Audio | Opus streaming between server, client, and browser |
Quick Start
1. Install dependencies
Debian / Ubuntu
sudo apt install build-essential pkg-config cmake libopus-dev libasound2-dev
# Optional — SDR support
sudo apt install libsoapysdr-dev
Fedora
sudo dnf install gcc pkg-config cmake opus-devel alsa-lib-devel
# Optional — SDR support
sudo dnf install SoapySDR-devel
Arch Linux
sudo pacman -S base-devel pkgconf cmake opus alsa-lib
# Optional — SDR support
sudo pacman -S soapysdr
macOS (Homebrew)
brew install cmake opus
# Optional — SDR support
brew install soapysdr
See Build Requirements in the wiki for details on each library.
2. Build and run
cargo build --release
cp trx-rs.toml.example trx-rs.toml # edit for your environment
cargo run -p trx-server
cargo run -p trx-client
Open the configured HTTP frontend address in a browser (default http://localhost:8080).
Build without SDR support: cargo build --release --no-default-features
How It Works
graph TD
Radio["Radio / SDR Hardware"] <-->|"serial or USB"| Server["trx-server<br/>rig control, DSP, decoders, audio capture"]
Server <-->|"JSON-TCP :4530"| Client["trx-client<br/>remote connection, audio relay"]
Server -->|"Opus-TCP :4531"| Client
Client <-->|internal channels| F1["Web UI :8080"]
Client <-->|internal channels| F2["rigctl :4532"]
Client <-->|internal channels| F3["JSON-TCP"]
trx-server owns hardware access and runs the DSP pipeline.
trx-client connects over TCP and exposes user-facing frontends.
This keeps hardware local to one host while making control available over the network.
Documentation
| Resource | Description |
|---|---|
| User Manual | Configuration, features, and usage |
| Architecture | System design, crate layout, data flow, and internals |
| Optimization Guidelines | Performance guidelines for the real-time DSP pipeline |
| Planned Features | Roadmap and design notes |
| Contributing | Commit conventions, workflow, and code style |
License
BSD-2-Clause. See LICENSES for bundled third-party license files.
Description
Languages
Rust
68.2%
JavaScript
24.1%
CSS
4.6%
HTML
3.1%
