5 Commits
Author SHA1 Message Date
swaits 0b9fe272d3 fix(mux/rust): prevent multiple instances via fd-lock (v0.1.1) v0.1.1 2026-04-06 15:20:26 -06:00
swaits b9390b2936 feat(mux/rust): make cargo-publish ready for v0.1.0
- Add version to donglora-client dependency for crates.io
- Set TCP_NODELAY on accepted TCP connections for low-latency framing
- Add CHANGELOG.md
v0.1.0
2026-04-06 14:50:00 -06:00
swaits 2d278461c7 fix(clients/rust): use ucobs instead of cobs crate
Switch from the third-party cobs crate to ucobs — the same COBS
implementation used by the firmware. Keeps the entire stack on one
COBS library.
2026-04-04 09:36:32 -06:00
swaits f8c8078fe8 docs: add README and LICENSE to Rust client and mux crates 2026-04-03 17:24:49 -06:00
swaits 2a0543d0b1 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.
2026-04-03 17:21:51 -06:00