moddable VS embedded-hal

Compare moddable vs embedded-hal and see what are their differences.


Tools for developers to create truly open IoT products using standard JavaScript on low cost microcontrollers. (by Moddable-OpenSource)


A Hardware Abstraction Layer (HAL) for embedded systems (by rust-embedded)
Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarQube - Static code analysis for 29 languages.
  • Scout APM - Truly a developer’s best friend
  • Zigi - Workflow assistant built for devs & their teams
moddable embedded-hal
10 5
1,031 1,023
2.3% 3.4%
9.8 8.0
4 days ago 10 days ago
C Rust
- Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of moddable. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-21.


Posts with mentions or reviews of embedded-hal. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-18.
  • Google announce secure Rust-based OS for embedded system
    8 projects | | 18 Oct 2022
    The ecosystem is great and growing, It really benefits from a language-standard embedded HAL which makes writing cross-platform drivers a cinch - e.g., you can write a bit-banged MDIO driver and use it on anything that has a timer and a two IO pins, from a Zynq Ultrascale to an arduino. Sure, this is possible in C - but Rust really benefits from a less fragmented ecosystem here.
  • STM32F4 Embedded Rust at the HAL: GPIO Button Controlled Blinking
    3 projects | | 27 Jun 2022
    📝 At the time of writing this post, it came to my attention that there is an additional HAL that targets STM32 device families (the stm32-hal). From what I figure, right now there seem to be two approaches for developing HALs. The first approach is trait driven so to speak where the embedded-hal is used as a foundation. The second approach is more application-driven and provides a high-level API that targets several families of a device. However, this exists only for the stm32 through the stm32-hal. Right now, the first approach is what I found to be more widespread as it covers different microcontrollers and what this post is based on.
  • Why doesn’t V8 fit on my microcontroller?
    9 projects | | 1 Jun 2021
    I can write a library for an OLED device that is driven by an platform agnostic I2C device that will run on any microcontroller that implements the necessary abstractions.

    The `embedded-hal` ( are these abstractions that allow this to happen

  • Hands-On: The RISC-V ESP32-C3 Will Be Your New ESP8266
    2 projects | | 8 Feb 2021
    Yes but there needs to be appropriate libraries available such as HAL. Well it doesn't have to but it makes my life as a beginner in both much easier. But its probably matter of time because i predict that this chip will be very popular in Rust embedded.

What are some alternatives?

When comparing moddable and embedded-hal you can also consider the following projects:

quickjs-esp32 - QuickJS port for ESP32

Espruino - The Espruino JavaScript interpreter - Official Repo

bl602-hal - Hardware Abstract Layer for BL602 RISC-V WiFi + BLE SoC in embedded Rust

nesper - Program the ESP32 with Nim! Wrappers around ESP-IDF API's.

esp32quickjs - QuickJS JavaScript Engine for ESP32

esp8266-quickjs - An attempt on getting QuickJS working on ESP8266 hardware

quickjs - Public repository of the QuickJS Javascript Engine. Pull requests are not accepted. Use the mailing list to submit patches.

microzig - Unified abstraction layer and HAL for several microcontrollers

microvium - A compact, embeddable scripting engine for applications and microcontrollers for executing programs written in a subset of the JavaScript language.

ulisp - A version of the Lisp programming language for ATmega-based Arduino boards.