Embracing the principle of "write once, run anywhere," Brawl is an application runtime powered by WebAssembly (WASM) and the WebAssembly System Interface (WASI) extension set- the same open-standard, sandboxed binary format that powers modern browsers. Brawls’s WASM-based runtime engine lets you write compact, device-agnostic logic and run it securely across ultra-constrained IoT targets. Brawl's standout feature is its exceptional ability to minimize firmware binary sizes while maintaining near-native performance with native bindings via its performance optimized virtual machine designed specifically for resource constrained microcontrollers.
Brawl runs WASM bytecode, delivered via RIoT Secure's management platform.
This lets you leverage standard tooling (e.g. wasm-opt, language compilers,
debuggers), for microcontroller firmware development.
Brawl brings the power of WebAssembly to embedded systems with a standardized runtime that eliminates vendor lock-in and ensures your applications run seamlessly across diverse hardware. Its lightweight, sandboxed design delivers safety and reliability, while opening the door to future innovations with WASI, WASI-IoT, and next-generation cryptographic extensions.
To illustrate, let's revisit a familiar example sketch provided in the Blink Tutorial in the Arduino IDE.
Arduino Sketch | Target | CPU | Firmware | |
---|---|---|---|---|
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } |
Arduino UNO | Atmel ATmega328P | 930 bytes | |
Arduino MKRZERO | Atmel SAMD21 | 10,072 bytes | ||
Arduino Primo | ARM Cortex-M4 | 19,960 bytes | ||
Arduino Due | ARM Cortex-M3 | 22,124 bytes | ||
Genuino 101 | Intel Currie | 48,732 bytes | ||
Compiled on the latest Arduino IDE and selecting the relevant device target, a simple application's firmware binary size varies considerably - ranging from 930 bytes to a substantial 48,732 bytes. And remember, this disparity exists even though the logic is identical across all targets. Brawl changes this narrative, utilizing standardized WebAssembly - developers create their device-agnostic business logic, compiling it results in a firmware size that remains consistent, no matter the deployment target. This firmware is then interpreted and executed in application runtime environment using native bindings - without impacting performance.
Let's convert the Arduino Sketch to WebAssembly! → Blink.wat Using wat2wasm the resulting Blink.wasm file produced is a miniscule 256 bytes!
Arduino Sketch | Target | CPU | IoT Firmware | |
---|---|---|---|---|
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } |
Arduino UNO | Atmel ATmega328P | 256 bytes * | |
Arduino MKRZERO | Atmel SAMD21 | 256 bytes * | ||
Arduino Primo | ARM Cortex-M4 | 256 bytes * | ||
Arduino Due | ARM Cortex-M3 | 256 bytes * | ||
Genuino 101 | Intel Currie | 256 bytes * | ||
* firmware size that is delivered and executed within Brawl WASM runtime environment | ||||
The industry standard WASM bytecode can now be deployed across multiple targets and platforms, at a fraction of the original firmware size.
Brawl is purpose-built for IoT, bringing the power of WebAssembly directly to microcontrollers. It delivers a secure, sandboxed runtime with lightweight execution, offering built-in bindings for essential peripherals like GPIO, I2C, SPI, and 1-Wire, while safely extending to native functions when needed. By adopting WebAssembly’s standardized instruction set, Brawl ensures portability and predictability across devices. As WASI and its emerging WASI-IoT extensions evolve, Brawl is can take advantage of standardized system calls and device interfaces - bridging today’s constrained hardware with tomorrow’s connected ecosystem.
Our Oasis and Fusion technologies synergize perfectly with Brawl, providing a platform to execute IoT firmware while offering a secure ecosystem for delivering and deploying firmware updates to devices in the field. As narrow band networks like LoRa, Sigfox, NB-IoT and LTE-M continue to expand with their limited uplink and downlink bandwidth the compact bytecode size provided by WASM enables feasible FOTA update capabilities. This eliminates the need for fallback networks or alternative wireless technologies for delivering firmware updates, reducing both complexity and cost.
Just as Java and .NET revolutionized servers and desktops over two decades ago, WebAssembly is already transforming the modern web and cloud. Brawl brings that same power and standardization to IoT. By running lightweight, portable WebAssembly modules, Brawl enables a single IoT virtual machine to run anywhere - from microcontrollers at the edge to digital twins in the cloud. This proven, future-ready foundation accelerates prototyping, simplifies validation, and minimizes investment risk while unlocking a new era of scalable, cross-platform IoT.
Brawl embodies our commitment to staying ahead of the curve, bringing the efficiency of the smallest possible firmware with the flexibility of WebAssembly. While still emerging in IoT, it represents our vision for tomorrow - future-proofing application development with a secure, standardized, and lightweight runtime built for the connected world.