Commit Graph
10 Commits
Author SHA1 Message Date
swaits 8f1298a1fa bump MSRV to 1.93, release v0.2.2 2026-04-08 21:46:06 -06:00
swaits f867383b12 fix: exclusive serial port lock prevents USB port theft
The mux now acquires an flock-based exclusive lock on the serial port
before opening it. This prevents bridges or other processes from directly
opening the same device while the mux owns it. The lock is held for the
duration of the dongle session and auto-released on disconnect or crash.
2026-04-07 18:04:52 -06:00
swaits 903729ccbe feat: upgrade to donglora-client 0.2, fix org URLs, publish-ready
- 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
2026-04-07 16:14:50 -06:00
swaits 2b7bdb5628 chore: add consistent mise.toml, justfile, and tooling config 2026-04-07 14:41:26 -06:00
swaits 3871772d9b WIP: functional checkpoint! 2026-04-06 21:15:35 -06:00
swaits 0b9fe272d3 fix(mux/rust): prevent multiple instances via fd-lock (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
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