feat: add Rust client library and mux daemon

Add donglora-client (clients/rust/) and donglora-mux (mux/rust/) as
Rust implementations of the existing Python client library and mux
daemon. Both are standalone Cargo projects with no-panic guarantees
enforced by clippy deny lints.

donglora-client provides protocol types, COBS framing, USB device
discovery, serial/mux transports, and a high-level Client<T> with
send/recv. donglora-mux is a fully async (tokio) multiplexer daemon
with dongle hot-plug reconnect, per-client bounded send queues,
SetConfig locking, and StartRx/StopRx reference counting.

52 unit tests across both crates. Updates README roadmap checkboxes
and CONTRIBUTING docs to reflect the new implementations.
This commit is contained in:
swaits committed 2026-04-03 17:21:51 -06:00
commit f16b36b138
11 files changed
+1993

No files matched your search

+21
View File
@@ -0,0 +1,21 @@
[package]
name = "donglora-client"
version = "0.1.0"
edition = "2024"
authors = ["Stephen Waits <steve@waits.net>"]
license = "MIT"
description = "DongLoRa host library — connect, configure, send/receive LoRa packets"
repository = "https://github.com/swaits/donglora"
keywords = ["lora", "radio", "usb", "serial"]
categories = ["hardware-support"]
[dependencies]
anyhow = "1"
cobs = "0.3"
serialport = "4"
tracing = "0.1"
[lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"