Today, we discussed how to run and embed the UNiD Edge SDK on the MCU. As you know, UNiD Edge SDK is developed using Rust language in this repository. However, the actual MCUs and language bindings are not provided in the form of Rust, and need optimization for each MCU and language binding.
For a small team like ours, we have only limited resources for development, so our choice will have to bring the larger or greater output compared to the resources available. With that in mind, we thought of the following options to provide UNiD Edge SDK.
- Develop in Rust, compile to WASM, and provide SDK with WASM Runtime
- Develop in Rust, compile into a static library (*.a), and provide the SDK wrapped in a thin wrapper
Initially, our original plan was to develop the Edge SDK based on the premise that the assets could be deployed horizontally once compiled into WASM form. However, WASM requires its Runtime separately, and for some MCU, the Runtime may not work satisfactorily. The WASM Runtime may not effectively utilize the CPU's security functions (e.g., ARM TrustZone). These considerations led to the decision to provide the SDK in the form of a static library.
If you'd like to be a part of the UNiD community, visit our GitHub. Click Star🌟 if you like.