1 unstable release

Uses new Rust 2024

new 0.1.0 Apr 4, 2025

#13 in #transfer

Download history 118/week @ 2025-04-01

118 downloads per month

MIT/Apache

22KB
316 lines

Clippy & co

Slipmux: Using an UART interface for diagnostics, configuration, and packet transfer

Pure Rust implementation of draft-bormann-t2trg-slipmux-03.

Note: Currently no checksumming on the configuration frames, and no frame aborting is implemented!

What is Slipmux

Slipmux is a very simple framing and multiplexing protocol. It uses RFC1055, commonly known as serial line ip (slip), as a basis for encoding / decoding data streams into frames but extends it with multiplexing. Slipmux defines three frame types: traditional IP packets, diagnostic frames and configuration messages. Diagnostic frames are UTF-8 encoded strings intended as human-readable messages. Configuration messages are serialized CoAP messages.

Todo

  • Remove coap-lite dep
  • Don't leak types of the serial-line-ip-rs crate
  • Implement FCS check sum for configuration frame
  • Implement frame abort
  • Provide tests for IP packets
  • Make crate optional #[no_std]
  • Rethink public interfaces (generalise the usability):
    • Currently wild mix of [u8] and Vec<u8>
    • Impossible to know if the deocder is completely done or if bytes remain in its buffer
    • Error handling is tedious
  • Interoperability tests with other slipmux implementations

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~19KB