#data-transfer #file-transfer #modem

txmodems

Rust library for various MODEM file transfer protocols

4 releases

0.1.3 Sep 9, 2023
0.1.2 Sep 9, 2023
0.1.1 Sep 9, 2023
0.1.0 Sep 8, 2023

#365 in Embedded development

30 downloads per month

MIT license

22KB
474 lines

txmodems

About

txmodems is a Rust no_std crate for the - eventual - (X/Y/Z)MODEM data transfer protocols.

This crate supports no_std first and foremost, but also supports std. No additional flags are required to use on std, it should work as-is.

Currently, by using the code from this crate, we have an initial codebase for XMODEM.

The plan is to use Cargo features for different -MODEM protocol supports. Soon, once ready, YMODEM support will be available via code derived from here.

All attributions to these code usages is here. I have licensed txmodems under the same license as the code used from the aforementioned crates. I also aim to use the 'REUSE' tool made by FSFE, to correctly provide attribution to the original authors.

Some things do differ, however. For example, I have aimed for no_std support from the start, and used traits to implement functionality for each -MODEM type.

Usage

I've published this crate to crates.io. Currently, only XMODEM compiles correctly. You can enable it using Cargo's 'features'. By default, it is not enabled.

To use each different type of -MODEM (currently it's only XMODEM), you need to explicitly enable each corresponding feature.

License

Licensed under the MIT license.

Dependencies

~2MB
~42K SLoC