A framework to manage multiples instances of WebAssembly Micro Runtime (WAMR) on microcontrollers
CS4WAMR is a framework to use WAMR and allows the execution of WebAssembly modules in separated WAMR instances.
CS4WAMR allows adding lacking features to WAMR such as memory consumption limitation and permissions per-containers (WAMR only allow configuring global settings for all the modules). CS4WAMR also allows executing WebAssembly modules in dedicated thread and backup these threads to enable containers snapshots.
By separating memory pools of different containers, CS4WAMR is a first step to do hardware isolation between containers to reinforce the isolation.
CS4WAMR has been presented on the TinyML as a Service on multi-tenant microcontrollers use case at the EWSN25 international conference.
The framework and its examples are available on GitHub under the MIT licence.