4219 commits by 102 contributors since the initial commit on October 29th,
2013! This would not have been possible without our corporate
sponsors and individual backers.
Nerves is tooling and core runtime support for creating bulletproof embedded
software running on the Erlang VM. The Erlang VM is known for its
support for fault-tolerance, concurrency, and low-latency that has been proven
out over the past two decades.
Nerves leverages the Elixir programming language and its tooling to
bring a dynamic, functional approach to building maintainable embedded
applications. Elixir’s Hex package manager extends this reach to a broad and
growing selection of Erlang and Elixir libraries that run on embedded systems.
Nerves additionally uses Buildroot to access libraries and
applications from the embedded Linux ecosystem for functionality lacking or
impractical to move to Elixir or Erlang. Many of these applications can even be
integrated into the same fault-tolerance abstractions used natively in Elixir.
Nerves has been ported to a variety of processors and boards. The Nerves v1.0
release includes official support for easily-obtained platforms like the
Raspberry Pi, Beaglebone and Lego EV3.
This release is the consolidation of all the work done through the years. With
v1.0, we have reached a stable milestone for the growth of software and projects
Nerves v1.0 consists of the following projects:
- nerves – Nerves integration with Elixir’s build tool, Mix.
- nerves_bootstrap – New project generation and bootstrap integration with mix
- nerves_runtime – Small, general-purpose libraries and utilities for all Nerves devices
- erlinit – Replacement for
/sbin/initthat launches an Erlang/OTP Release
- nerves_system_br – Buildroot integration for building embedded Linux components
- nerves_system_* – Official ports to boards and devices
- toolchains – C/C++ cross-toolchains for ARM, MIPS, i586, and x86_64-based devices
Nerves tooling and core runtime libraries will follow semantic versioning.
Nerves hardware ports, called Nerves Systems, follow Buildroot releases. Nerves
also provides toolchains for Elixir projects that contain C and C++. Both Nerves
Systems and Toolchains aggregate many programs and libraries and therefore don’t
follow semantic versioning. We will attempt to flag significant updates in the
change notes and link to Buildroot release notes to aid industrial users who
track constituent software packages closely.
With v1.0, we are providing a stable platform for the community to leverage and
extend, and we are extremely excited with the projects and possibilities that
are ahead of us!
We would like to elaborate on the expectations regarding Nerves v1.0. The Nerves
Project hosts many projects that are useful in building embedded systems and we
have put significant thought into how many of those should be part of the 1.0
release. While pre-1.0 projects have not stopped people from using Nerves and
shipping Nerves-based devices over the past few years, we understand that
transitioning projects to 1.0 can provide confidence in the stability of API and
tooling. The projects chosen for 1.0 are those that have remained stable for a
long time and those that we are unlikely to break backwards compatibility going
You can also learn more about Nerves by checking out
We’re really looking forward to hearing from people using Nerves and we want all
of you to be successful. If you need help or just want to share something you
made, let us know on the Elixir Forum or the elixir-lang Slack.
via Hacker News https://ift.tt/2rmSp34