rmodem
XMODEM protocol implementation in pure #[no_std] Rust.
This implementation has the goal of supporting as many variants of the XMODEM protocol still in common usage.
If code size becomes an issue, protocol variants may be feature-gated.
For example, the original protocol and common data structures would be available by default.
When implemented, to enable YMODEM support:
[]
# ...
= ["ymodem"]
no-std
This crate is #[no_std] by default, making it usable in environments without the std and alloc libraries.
Exception safety
This crate aims to be free from explicit and implicit panics, favoring fallible functions to bubble-up errors.
Lints and manual code review should help in these efforts.
If you notice code that will panic at runtime, it's a bug.
Please file an issue or submit code changes :)
Compile-time errors, such as failing assertions in proc-macros, do not count since they are caught during compilation.
Usage
(coming soon)
WIP
The current plan is to support:
- XMODEM
- XMODEM-1k
- XMODEM-CRC
- WXMODEM
- YMODEM
- ZMODEM
If there are other variants still in common usage, please open an issue or submit code changes :)
LICENSE
This code is licensed under AGPL v3.0 or later.