Implementation of the
embedded-hal
traits 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.