From 542b1630b7fe4acbc0df8a75f224a14d79da4453 Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Fri, 3 Apr 2026 17:01:27 -0600 Subject: [PATCH] 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 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. --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 54c55c2..43b8bc1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,8 +22,8 @@ common tasks consume. No shared board code — each board is self-contained. ## Client Libraries -The Python library (`clients/python/`) -is the reference implementation. To add a library in another language: +Client libraries exist in [Python](clients/python/) and [Rust](clients/rust/). +To add a library in another language: 1. Create a directory with the language's standard project layout 2. Implement the wire protocol from [firmware/PROTOCOL.md](firmware/PROTOCOL.md)