Skip to content

Teufelchen1/slipmux

Repository files navigation

Clippy & co Crates.io Documentation

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

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

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.

Usage

Add slipmux to the dependencies in your Cargo.toml. This crate requires std by default via the std feature. You can disable this by adding default-features = false to the entry, which will make this crate no_std compatible.

Check docs.rs for examples and documentation on the programming API. For even more examples, take a look at the unittests on the bottom of src/framehandler.rs.

Todo

  • Remove coap-lite dep
  • Don't leak types of the serial-line-ip-rs crate
  • Provide tests for IP packets
  • Implement FCS check sum for configuration frame
  • Implement frame abort
    • Encoder (this crate does not take control over the transmission, it has no way of aborting)
    • Decoder
  • 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
  • Polishing, QoL improvments, incorporating feedback from experienced crate publishern

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.

About

A rust crate for Slipmux

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages