4 releases (2 breaking)
0.4.0 | Nov 25, 2022 |
---|---|
0.3.1 | Oct 26, 2022 |
0.3.0 | May 18, 2022 |
0.2.0 | May 6, 2022 |
0.1.0 |
|
#77 in Embedded development
21,105 downloads per month
Used in 49 crates
(21 directly)
39KB
913 lines
embedded-io
IO traits for embedded systems.
Rust's std::io
traits are not available in no_std
targets, mainly because std::io::Error
requires allocation. This crate contains replacement equivalent traits, usable in no_std
targets.
The only difference with std::io
is Error
is an associated type. This allows each implementor
to return its own error type, while avoiding dyn
or Box
. This is how errors are handled in embedded-hal
.
Async variations of the traits are also available, returning futures using generic associated types.
Note this design is significantly different from both futures::io
and tokio::io
. The result is much
more ergonomic, at the expense of requiring nightly.
License
This work is 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.
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
~0–4.5MB
~71K SLoC