Implementation of the
embedded-haltraits for Webassembly components
Currently only support for I2C and Delay is provided, but more is planned.
Note that only embedded-hal version 1.O is supported.
Simply use this crate and then add add_i2c_hal!(i2c) in your file. Where i2c is the module from bindings.rs generated by cargo-component.
The generated bindings and the embedded-hal API differ slightly, e.g. &[...] vs. Vec<...>. This crate defines methods that follow the embedded-hal API, and that underneath call those from the generated bindings. Effectively allowing one to very easily use crates that adhere to embedded-hal inside Wasm.
This crate is guaranteed to compile on stable Rust 1.76.0 and up. It might compile with older versions but that may change in any new patch release.
This work has been partially supported by the ELASTIC project, which received funding from the Smart Networks and Services Joint Undertaking (SNS JU) under the European Union’s Horizon Europe research and innovation programme under Grant Agreement No 101139067. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union. Neither the European Union nor the granting authority can be held responsible for them.