- Upgrade donglora-client from 0.1 (monorepo path dep) to 0.2 (crates.io) - Import wire-level constants from donglora_client::protocol::* - Fix repository URL to github.com/donglora/mux-rs - Add homepage, rust-version, exclude to Cargo.toml - Fix README (remove monorepo paths, add install instructions) - Allow clippy unwrap in test module
36 lines
1015 B
Markdown
36 lines
1015 B
Markdown
# DongLoRa Mux (Rust)
|
|
|
|
USB multiplexer daemon — lets multiple applications share one DongLoRa
|
|
dongle simultaneously.
|
|
|
|
## Install
|
|
|
|
```sh
|
|
cargo install donglora-mux
|
|
```
|
|
|
|
## What It Does
|
|
|
|
- Owns the USB serial connection exclusively
|
|
- Exposes a Unix domain socket (and optional TCP) speaking the same
|
|
COBS-framed protocol
|
|
- RxPacket frames broadcast to all connected clients
|
|
- StartRx/StopRx reference-counted across clients
|
|
- SetConfig locked once set (single client can change freely)
|
|
- Single-instance enforcement via file lock (stale sockets auto-cleaned)
|
|
- Automatic dongle reconnect on hot-plug
|
|
- No panics — enforced by clippy deny lints
|
|
|
|
## Running
|
|
|
|
```sh
|
|
donglora-mux # start the mux daemon
|
|
donglora-mux --verbose # start with verbose logging
|
|
donglora-mux --tcp 5741 --port /dev/ttyACM0 # with options
|
|
```
|
|
|
|
## Depends On
|
|
|
|
- [`donglora-client`](https://crates.io/crates/donglora-client) — protocol
|
|
types, COBS framing, device discovery
|