Year in Review: Moddable in 2022

The end of the year is an opportunity to look back at the amazing progress Moddable has made in our mission to bring the power of the JavaScript ecosystem to embedded developers. The Moddable SDK continues to grow in both breadth and depth to support new devices, new capabilities, and familiar APIs, giving developers an ever-expanding set of possibilities for their products.

XS JavaScript Engine

XS is the bridge between the embedded world and the JavaScript ecosystem. XS is the only modern JavaScript engine designed for low-cost IoT hardware. This year XS added support for the latest ECMAScript 2022 standard including popular features like top-level await, private fields, and RegExp match indices. To help embedded developers get the most out of their hardware, XS now provides performance profiler to guide developers to performance bottlenecks.

Security is always a priority for IoT products. In 2022, Moddable dramatically expanded testing for vulnerabilities in XS, allowing us to find and fix many potential vulnerabilities before they could be exploited. XS also became the first JavaScript engine to implement the latest Hardened JavaScript proposal to provide provably secure virtualization of JavaScript code.

Monthly Releases

IoT products built on the Moddable SDK need stable releases to deliver software updates to their customers. In 2022, Moddable began publishing an official release at the start of each month. Releases are tagged with a version number and validated with our test suite. Releases are published on our repository on GitHub together with precompiled tool binaries for macOS, Windows, and Linux. Most importantly, each release includes detailed notes to help developers discover new features and critical fixes that can improve their products.

Web API Compatibility

APIs fully optimized for embedded often differ from APIs used on the web, requiring web developers to learn new JavaScript APIs to code for embedded. In 2022, Moddable implemented optimized support for many widely used JavaScript APIs from the web empowering developers to use their experience with these APIs on embedded too.

The Web APIs added include fetch for making HTTP requests, WebSocket for bi-directional WebSocket communication, EventSource to receive Server Sent Events, the most popular MQTT client for Node.js, the URL class to parse URLs, structuredClone to duplicate objects, and deepEqual to compare objects. Embedded developers have quickly begun using these familiar APIs to simplify and speed up their code.

Moddable has also enhanced support for TypeScript, a must-have extension to JavaScript for many web developers.

Devices

The number of microcontrollers and development boards supported by the Moddable SDK grew considerably in 2022. Because the Moddable SDK provides a consistent JavaScript API on all devices, developers can begin using these new device ports immediately.

  • ESP32-S3 - The flagship MCU from Espressif is faster and more powerful than the popular ESP32. Development boards are appearing quickly.
  • ESP32-C3 - The first RISC-V processor the Moddable SDK supports
  • Raspberry Pi Pico and Pico W – Experimental support for Pico became official this year, and support for the new Pico W (Wi-Fi) was in place shortly after launch.

In addition to the core port for each of these MCUs, the Moddable SDK contains support for dozens of development boards, making it easy for embedded developers to find a good match for their project needs.

And Much More

This article can only scratch the surface of all the enhancements made in 2022. Here are some others that are worth digging into:

  • ECMA-419 Standard - Standards are the foundation of the JavaScript web ecosystem. ECMA-419 is the standard for JavaScript APIs on embedded devices. In 2022, Moddable implemented many of the new classes planned for its second edition.
  • BLE Human Interface Device (HID) that turns a microcontroller into a remote keyboard or media controller
  • Scalable outline renderer capable of rendering SVG and Canvas
  • New tool support to render any OpenType font on any embedded device
  • LittleFS, a high-reliability, low-overhead file system
  • Node-RED MCU Edition is an initiative to bring the extremely popular Node-RED low-code JavaScript development environment to low-cost embedded projects

Thank You

The tremendous progress we've made on the Moddable SDK this year is only possible because of the generosity of our commercial clients and open source community. Many of the substantial new features of 2022 are a result of requirements from Moddable's clients for their own products. Recognizing that they have benefited from the open source contributions of others to the Moddable SDK, they have agreed to have these features integrated into the Moddable SDK for everyone to use.

Our open source community has made countless contributions, from documentation corrections and issue reports to bug fixes and PRs for new development boards. We learn from everyone's questions and comments. We are energized by the positive feedback.

As 2023 begins, the entire team at Moddable looks forward to another year of working together to bring more of the benefits of the JavaScript ecosystem to embedded developers so they can deliver more powerful, more reliable, more secure, more easy-to-use products to their customers.