{"id":14979973,"url":"https://github.com/atomvm/atomvm","last_synced_at":"2026-02-12T18:03:15.623Z","repository":{"id":36991799,"uuid":"109575106","full_name":"atomvm/AtomVM","owner":"atomvm","description":"Tiny Erlang VM","archived":false,"fork":false,"pushed_at":"2025-11-17T16:38:23.000Z","size":12698,"stargazers_count":1941,"open_issues_count":174,"forks_count":132,"subscribers_count":53,"default_branch":"main","last_synced_at":"2025-11-17T18:23:02.886Z","etag":null,"topics":["c","elixir","embedded","erlang","esp32","hacktoberfest","stm32"],"latest_commit_sha":null,"homepage":"https://atomvm.org","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atomvm.png","metadata":{"files":{"readme":"README.Md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-11-05T11:54:05.000Z","updated_at":"2025-11-17T18:10:05.000Z","dependencies_parsed_at":"2023-07-12T16:01:41.661Z","dependency_job_id":"0e54189d-6e90-4efe-b3fa-6a942a1858c4","html_url":"https://github.com/atomvm/AtomVM","commit_stats":{"total_commits":2400,"total_committers":27,"mean_commits":88.88888888888889,"dds":0.37,"last_synced_commit":"22c0da49bc8d7ca693217299f67e441a2df78313"},"previous_names":["bettio/atomvm"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/atomvm/AtomVM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomvm%2FAtomVM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomvm%2FAtomVM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomvm%2FAtomVM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomvm%2FAtomVM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atomvm","download_url":"https://codeload.github.com/atomvm/AtomVM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomvm%2FAtomVM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285889732,"owners_count":27248885,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-23T02:00:06.149Z","response_time":135,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","elixir","embedded","erlang","esp32","hacktoberfest","stm32"],"created_at":"2024-09-24T14:01:03.048Z","updated_at":"2025-11-23T02:03:25.368Z","avatar_url":"https://github.com/atomvm.png","language":"Erlang","readme":"\u003c!---\n  Copyright 2017-2025 Davide Bettio \u003cdavide@uninstall.it\u003e\n\n  SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later\n--\u003e\n\nAtomVM\n===========\n\nBrings [Erlang](https://www.erlang.org/), [Elixir](https://elixir-lang.org/) and other functional\nlanguages to really small systems.\n\nAtomVM 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.\n\nSupported Platforms\n===================\n\n* Linux, macOS, FreeBSD, DragonFly ([generic_unix](https://doc.atomvm.org/main/getting-started-guide.html#getting-started-on-the-generic-unix-platform))\n* ESP32 SoC (with IDF/FreeRTOS, see [esp32](https://doc.atomvm.org/main/getting-started-guide.html#getting-started-on-the-esp32-platform))\n* STM32 MCUs (with LibOpenCM3, see [stm32](https://doc.atomvm.org/main/getting-started-guide.html#getting-started-on-the-stm32-platform))\n* Raspberry Pi Pico and Pico 2 (see [rp2](https://doc.atomvm.org/main/getting-started-guide.html#getting-started-on-the-raspberry-pi-pico-platform))\n* Browsers and NodeJS with WebAssembly (see [emscripten](https://doc.atomvm.org/main/getting-started-guide.html#getting-started-with-atomvm-webassembly))\n\nAtomVM aims to be easily portable to new platforms with a minimum effort, so additional platforms\nmight be supported in a near future.\n\nGetting Started\n===============\nThere is much more information, including a more complete\n[\"Getting Started Guide\"](https://doc.atomvm.org/main/getting-started-guide.html),\n[examples](https://atomvm.org/sample-code),\ndetailed [build instructions](https://doc.atomvm.org/main/build-instructions.html),\nand [contact information](https://atomvm.org/contact) available on the\n[AtomVM](https://atomvm.org) project website.\n\n\u003eDon't forget to check out the [examples repository](https://github.com/atomvm/atomvm_examples) to\n\u003ehelp get you started on your next IoT project.\n\n**Please, use [v0.6.x](https://github.com/atomvm/AtomVM/tree/release-0.6) releases, main branch\nis for development purposes and it might be unstable.**\n\nDependencies\n------------\n\nRequired for building:\n* CMake ([CMake build system](https://cmake.org/))\n* gperf ([GNU Perfect Hash Function Generator](https://www.gnu.org/software/gperf/manual/gperf.html))\n* erlc ([erlang compiler](https://www.erlang.org/))\n* elixirc ([elixir compiler](https://elixir-lang.org))\n* rebar3 ([rebar3 build tool](https://www.rebar3.org/))\n* Mbed TLS ([portable TLS library, optionally required to support SSL](https://www.trustedfirmware.org/projects/mbed-tls/))\n* zlib ([zlib compression and decompression library](https://zlib.net/))\n\nDocumentation and Coverage:\n* gcov and lcov are optionally required to generate coverage report (`make coverage`).\n* For documentation build requirements consult the [Documentation README](doc/README.md).\n\nStep-by-Step Build Instructions (generic unix platform)\n-------------------------------------------------------\n\n```\n$ mkdir build\n$ cd build\n$ cmake ..\n$ make\n$ ./src/AtomVM ./examples/erlang/hello_world.avm\n```\n\nComplete [Build Instructions](https://doc.atomvm.org/main/build-instructions.html) are\navailable in the documentation for\n[Generic UNIX](https://doc.atomvm.org/main/build-instructions.html) (Linux, MacOS, FreeBSD, DragonFly),\n[ESP32](https://doc.atomvm.org/main/build-instructions.html#building-for-esp32),\n[STM32](https://doc.atomvm.org/main/build-instructions.html#building-for-stm32),\n[Raspberry Pi Pico and Pico 2](https://doc.atomvm.org/main/build-instructions.html#building-for-raspberry-pi-pico)\n(rp2), and\n[WASM](https://doc.atomvm.org/main/build-instructions.html#building-for-nodejs-web) (NodeJS/Web).\n\nProject Status\n==============\n\n[![Build and Test](https://github.com/atomvm/AtomVM/actions/workflows/build-and-test.yaml/badge.svg?branch=main)](https://github.com/atomvm/AtomVM/actions/workflows/build-and-test.yaml)\n\nAtomVM is no longer just a prototype — it has reached a solid level of compatibility with the BEAM\necosystem. It can execute unmodified, compiled BEAM modules, and most\n[core standard library functions](https://doc.atomvm.org/main/api-reference-documentation.html)\nare already supported.\n\nAtomVM is tested with code compiled with any version from OTP 21 to 27 (28 is supported only in `main` branch).\n\nCrashes may still occur in edge cases, so we recommend using either the\n[latest stable release](https://github.com/atomvm/AtomVM/releases)\n[(v0.6.x)](https://github.com/atomvm/AtomVM/tree/release-0.6) or the\n[main branch](https://github.com/atomvm/AtomVM/tree/main) if you're experimenting with newer\nfeatures.\nIf you run into issues, please [open an issue](https://github.com/atomvm/AtomVM/issues/new/choose)\n — we’d love your feedback.\n\nFor a detailed list of recent changes and new features, see the\n[changelog](https://github.com/atomvm/AtomVM/blob/main/CHANGELOG.md).\n\nAtomVM is ready to power your next embedded or lightweight functional programming project.\n\nKnown Limitations\n-----------------\n\nYour existing project might not work out of the box due to a few current limitations:\n\n- The standard library is minimal — some functions and modules are not yet implemented.\n- Features that depend on a full operating system (e.g. file I/O, OS processes) may be missing or\nbehave differently.\n- Certain BEAM features like `on_load` functions and tracing are not yet supported.\n- Some functionality may simply be missing — if you find a gap, feel free to open an issue, and\nwe’ll take a look.\n\nWhen a feature is implemented, we aim to provide behavior that is consistent with the official\n[BEAM documentation](https://www.erlang.org/docs) and\n[Erlang/OTP runtime](https://github.com/erlang/otp).\n\nSome of these limitations are on the roadmap, while others are deliberate design decisions to keep\nAtomVM lightweight, portable, and suitable for embedded systems.\n\nAbout This Project\n==================\nThis project has been created by [Davide Bettio](https://github.com/bettio/), and now is developed\nfrom a growing number of [contributors](https://github.com/atomvm/AtomVM/graphs/contributors).\n\nHow to Contribute\n-----------------\nAny kind of [contribution](CONTRIBUTING.md) is welcome, you can either contribute to this repository\nby improving the virtual machine, the core libraries or the documentation or by contributing to any\nof the [organization](https://github.com/atomvm) repositories.\n\nLicense\n-------\nThis project is under the terms of the Apache 2.0 license.\n\n❤️ Acknowledgements\n-------------------\n\nAtomVM is made possible thanks to the dedication of a vibrant community of individual contributors\nwho have generously shared their time and expertise. We are deeply grateful for their ongoing\nsupport and passion over the years.\n\nWe also want to extend a special thank you to the following companies for supporting the development\nof AtomVM:\n\n[![Dashbit](doc/assets/dashbit-logo.png)](https://dashbit.co/)\n[![Software Mansion](doc/assets/sw-mansion-logo.png)](https://swmansion.com/)\n\nThank you all for being part of this journey! 🙌\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomvm%2Fatomvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatomvm%2Fatomvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomvm%2Fatomvm/lists"}