Pure Rust implementation of draft-bormann-t2trg-slipmux-03.
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.
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.
- Remove coap-lite dep
- Don't leak types of the
serial-line-ip-rscrate - 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]andVec<u8> - Impossible to know if the deocder is completely done or if bytes remain in its buffer
- Error handling is tedious
- Currently wild mix of
- Interoperability tests with other slipmux implementations
- Polishing, QoL improvments, incorporating feedback from experienced crate publishern
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
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.