You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Brings Erlang, Elixir and other functional
languages to really small systems.
AtomVM implements from scratch a minimal Erlang VM that supports a subset of ErlangVM features and that is able to run unmodified BEAM binaries on really small systems like MCUs.
AtomVM is no longer just a prototype — it has reached a solid level of compatibility with the BEAM
ecosystem. It can execute unmodified, compiled BEAM modules, and most
core standard library functions
are already supported.
AtomVM is tested with code compiled with any version from OTP 21 to 27 (28 is supported only in main branch).
Crashes may still occur in edge cases, so we recommend using either the
latest stable release(v0.6.x) or the
main branch if you're experimenting with newer
features.
If you run into issues, please open an issue
— we’d love your feedback.
For a detailed list of recent changes and new features, see the
changelog.
AtomVM is ready to power your next embedded or lightweight functional programming project.
Known Limitations
Your existing project might not work out of the box due to a few current limitations:
The standard library is minimal — some functions and modules are not yet implemented.
Features that depend on a full operating system (e.g. file I/O, OS processes) may be missing or
behave differently.
Certain BEAM features like on_load functions and tracing are not yet supported.
Some functionality may simply be missing — if you find a gap, feel free to open an issue, and
we’ll take a look.
Some of these limitations are on the roadmap, while others are deliberate design decisions to keep
AtomVM lightweight, portable, and suitable for embedded systems.
About This Project
This project has been created by Davide Bettio, and now is developed
from a growing number of contributors.
How to Contribute
Any kind of contribution is welcome, you can either contribute to this repository
by improving the virtual machine, the core libraries or the documentation or by contributing to any
of the organization repositories.
License
This project is under the terms of the Apache 2.0 license.
❤️ Acknowledgements
AtomVM is made possible thanks to the dedication of a vibrant community of individual contributors
who have generously shared their time and expertise. We are deeply grateful for their ongoing
support and passion over the years.
We also want to extend a special thank you to the following companies for supporting the development
of AtomVM: