"WebAssembly adoption hinges on the Component Model. Luke Wagner discusses Preview 3 updates and how Wasm is evolving for edge and serverless environments."

https://thenewstack.io/webassembly-component-model-future/

#webassembly #wasm #container

WebAssembly is now outperforming containers at the edge

WebAssembly adoption hinges on the Component Model. Luke Wagner discusses Preview 3 updates and how Wasm is evolving for edge and serverless environments.

The New Stack
Inside Ohm's PEG-to-Wasm compiler | Ohm

Ohm is a user-friendly parsing toolkit for JavaScript and TypeScript. You can use it to parse custom file formats or quickly build parsers, interpreters, and compilers for programming languages. Learn more

Inside Ohm's PEG-to-Wasm compiler | Ohm

Ohm is a user-friendly parsing toolkit for JavaScript and TypeScript. You can use it to parse custom file formats or quickly build parsers, interpreters, and compilers for programming languages. Learn more

Exploring #wasm lately and finding #wasmcloud kinda fascinating.

They're orchestrating wasm modules on #Kubernetes with #nats as the control plane. A really interesting project that just hit 2.0.

https://wasmcloud.com/blog/wasmcloud-v2-is-here/

Why Run Wasm on a Microcontroller?

A traditional embedded project compiles C or Rust directly to ARM machine code, flashes it, and runs it. It is simple, fast, and uses minimal RAM. So why add a WebAssembly runtime to a device with 512 KiB of memory?

Sandboxing. The Wasm guest runs inside a sandbox enforced by Wasmtime. It cannot access arbitrary memory, call arbitrary functions, or touch hardware directly. Every interaction with the outside world goes through a WIT-defined interface that the host explicitly implements. A bug or exploit in the guest cannot corrupt the host firmware, overwrite stack frames, or hijack peripherals. On a traditional bare-metal C binary, a single buffer overflow in application logic can take over the entire device.

Portable application logic. The Wasm component is compiled once to wasm32-unknown-unknown and runs on any host that implements the same WIT interface. The same blinky guest that runs on an RP2350 through Pulley could run on an ESP32, an STM32, or a Linux desktop — without recompilation. The hardware-specific code lives in the host firmware; the application logic is platform-independent.

Separation of concerns. The WIT interface creates a hard contract between the application developer and the firmware developer. The application developer writes guest code against gpio.set-high(pin: u32) and timing.delay-ms(ms: u32) without knowing or caring how GPIO or timing work on the target hardware. The firmware developer implements those interfaces against the HAL. Either side can be updated, replaced, or audited independently.

Safe over-the-air updates. Because the Wasm component is sandboxed and interface-bound, you could update the guest application without reflashing the entire firmware. A new .cwasm blob can be loaded from flash, UART, or a network interface, deserialized by the existing Wasmtime engine, and executed — with the guarantee that it can only do what the WIT interface allows. A corrupted or malicious update cannot escape the sandbox.

Flash wear reduction. The NOR flash memory used in microcontrollers has a finite lifespan — typically rated for 100,000 program/erase cycles per sector (the RP2350's Winbond W25Q16JV is rated for exactly this). Every full firmware reflash erases and rewrites the sectors containing code. In a traditional C firmware, any change to application logic — even a one-line fix — requires reflashing the entire binary, burning through those erase cycles. With a Wasm-based architecture, the host firmware is flashed once and stays put. Application updates are delivered as new .cwasm blobs that can be loaded from a dedicated flash region, written to a separate sector, or streamed directly into RAM over UART without touching the firmware sectors at all. This extends the usable life of the flash and avoids the failure mode where a device in the field becomes unupdatable because its flash has been erased too many times.

Language flexibility. Any language that compiles to Wasm can produce a guest component — Rust, C, C++, TinyGo, AssemblyScript, or Zig. The host firmware does not need to change. This means a team can write performance-critical drivers in Rust and application logic in whatever language fits their workflow, all communicating through typed WIT interfaces.

The tradeoff is RAM. The Wasmtime runtime, Pulley interpreter, and guest linear memory consume approximately 300 KiB of the RP2350's 512 KiB. A native C blinky uses roughly 4 KiB. You are paying for isolation, portability, and a well-defined security boundary. On devices where those properties matter — updatable field devices, multi-tenant firmware, safety-critical systems — the RAM cost is worth it. On a throwaway prototype that blinks an LED, it is not.

For these reasons, I created the below repo to help grow the #Embedded #Wasm community. If you are looking to get started click below.

https://github.com/mytechnotalent/embedded-wasm

Show HN: 2.7KB Zig WASM – live globe showing executions at 300 CF edges

https://mcpaas.live/globe

#wasm #zig

FAF Globe — See Where Your Code Runs

2.7KB of Zig WASM. 300+ edge locations. Live execution map.

🌍✨ A "live globe" to showcase your #WASM executions? Wow, what a groundbreaking #innovation only useful on the 300 #Cloudflare edges where the world *truly* spins.🔍🖱️ Clearly, nothing screams cutting-edge like a 2.7KB binary and a mouse-driven planetarium—ensure you don't get dizzy while rotating your genius! 🙄🚀
https://mcpaas.live/globe #liveglobe #techtrends #planetarium #HackerNews #ngated
FAF Globe — See Where Your Code Runs

2.7KB of Zig WASM. 300+ edge locations. Live execution map.

A pure #Embedded #Rust blinky project that runs a #WASM WebAssembly Component Model runtime (#wasmtime + #Pulley interpreter) directly on the #RP2350 bare-metal w/ HW capabilities exposed through #WIT. https://github.com/mytechnotalent/embedded-wasm-blinky
GitHub - mytechnotalent/embedded-wasm-blinky: A pure Embedded Rust blinky project that runs a WebAssembly Component Model runtime (wasmtime + Pulley interpreter) directly on the RP2350 bare-metal w/ HW capabilities exposed through WIT.

A pure Embedded Rust blinky project that runs a WebAssembly Component Model runtime (wasmtime + Pulley interpreter) directly on the RP2350 bare-metal w/ HW capabilities exposed through WIT. - myte...

GitHub

Browser-based SFX synthesizer using WASM/Zig

https://knell.medieval.software/studio

#wasm #zig

Knell — SFX Synthesizer

Design game sound effects in your browser. Oscillators, FM synthesis, distortion, filters, reverb, and a DAW-style timeline.

Fastly has a job opening in the UK, for Compute, Fastly's serverless Wasm compute platform, using Rust.

https://www.fastly.com/about/jobs/apply?gh_jid=7736653

Happy to answer/relay any questions!

#RustLang #Wasm #job

Jobs at Fastly | Fastly

We’re always looking for humble, sharp, and creative folks to join the Fastly team. If you think you might be a fit, please apply!