AtomVM是一个用于 IoT 物联网设备的 Erlang 虚拟机,具有轻量级 BEAM 实现和针对微控制器优化的标准库。
AtomVM是将Erlang、Elixir和其他函数式语言引入非常小的系统。
AtomVM 从头开始实现了一个最小的 Erlang VM,它支持 ErlangVM 功能的子集,并且能够在 MCU 等非常小的系统上运行未经修改的 BEAM 二进制文件。
AtomVM 是 Erlang 抽象机 (BEAM) 虚拟机的轻量级实现,可以执行 Erlang 或 Elixir 源代码中的字节码。它支持 BEAM 操作码的有限但功能性子集,并包含 Erlang/OTP 标准库的一小部分子集,经过优化以在微型微控制器上运行。
AtomVM 允许使用基于参与者的现代并发模型以函数式编程语言编写物联网应用程序。它包括进程生成、监控、消息传递、抢占式调度和高效垃圾收集等高级功能,并且可以直接与微控制器外设和协议连接。
AtomVM 还支持某些设备上的 WiFi 网络,并在成本低至 2 美元的硬件上运行。
支持的平台
- Linux、macOS、FreeBSD(通用 unix)
- ESP32 SoC(使用 IDF/FreeRTOS,请参阅README.ESP32.Md)
- STM32 MCU(带有 LibOpenCM3,请参阅README.STM32.Md)
- Raspberry Pi Pico(请参阅README.PICO.Md)
- 带有 Web 程序集的浏览器和 NodeJS(请参阅README.WASM.Md)