This repository has been archived on 2026-08-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
donglora/vendor/embedded-io/README.md
T
swaitsandClaude Opus 4.6 3102fc747a feat: add display UI with splash screen, dashboard, and RSSI sparkline
Implement full SSD1306 OLED display support:
- Splash screen on boot (1.5s) with project name, version, board
- Dashboard showing radio state, config, counters, RSSI/SNR
- RSSI history sparkline (64-sample ring buffer, 2px-wide bars)
- DisplayOn/DisplayOff host commands routed via dedicated channel
- Pure render functions against generic DrawTarget (no hardware coupling)
- Display on/off control bypasses radio task entirely

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:42:54 -06:00

2.4 KiB

crates.io crates.io Documentation

embedded-io

This project is developed and maintained by the HAL team.

Input/Output 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.

Differences with std::io

  • Error is an associated type. This allows each implementor to return its own error type, while avoiding dyn or Box. This is consistent with how errors are handled in embedded-hal.
  • In std::io, the Read/Write traits might be blocking or non-blocking (i.e. returning WouldBlock errors) depending on the file descriptor's mode, which is only known at run-time. This allows passing a non-blocking stream to code that expects a blocking stream, causing unexpected errors. To solve this, embedded-io specifies Read/Write are always blocking, and adds new ReadReady/WriteReady traits to allow using streams in a non-blocking way.

Optional Cargo features

  • std: Adds From impls to convert to/from std::io structs, adds std::error::Error impls.
  • alloc: Adds blanket impls for Box, adds Write impl to Vec.
  • defmt-03: Derive defmt::Format from defmt 0.3 for enums and structs.

Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.60 and up. It might compile with older versions but that may change in any new patch release.

See here for details on how the MSRV may be upgraded.

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.