For over 25 years, AdaCore has been committed to supporting the needs of safety- and mission-critical industries. This started with an emphasis on the Ada programming language and its toolchain, and over the years has been extended to many other technologies. AdaCore’s product offerings today include support for the Ada language and its formally verifiable SPARK subset, C and C++, and Simulink and Stateflow models. We have accomplished this while addressing the requirements of various safety standards such as DO-178B/C, EN 50128, ECSS-E-ST-40C / ECSS-Q-ST-80C, IEC 61508 and ISO 26262.
About a decade ago, a new programming language named Rust emerged with the goal of improving industry-wide programming practices towards higher reliability. Over the years, the technology evolved and is now appealing to the high-integrity embedded markets such as automotive. It is on these premises that a new company, Ferrous Systems, was formed in Germany by a number of Rust community members, aiming at providing safety-critical and certified toolchains for Rust users through its Ferrocene technology.
The story could have stayed there, with two separate tracks for two separate approaches to solving the same problem. Instead, AdaCore and Ferrous Systems started to realize that the two companies shared a fundamental understanding and approach both from a technical and business standpoint. Ferrous Systems and AdaCore have the same desire to support programmers with better languages, the same commitment to open-source software, the same drive towards facilitating software certification, all with very similar technologies. And both companies came to the same conclusion: by working together, they could more quickly bring a safety-certified Rust toolchain to the high integrity market.
Ferrous Systems and AdaCore are announcing today that they’re joining forces to develop Ferrocene - a safety-qualified Rust toolchain, which is aimed at supporting the needs of various regulated markets, such as automotive, avionics, space, and railway.
For Ferrous Systems, Ferrocene is an opportunity to leverage their Rust technical expertise and their relationship with the Rust community to turn the language into a first-class citizen for mission- and safety-critical embedded software development.
For AdaCore, this effort complements our long-standing Ada commitment and offers an opportunity to extend to the Rust community the expertise that we developed around safety-certified Ada toolchains.
Together we believe that there is a need for both Ada and Rust in the safety- and security-critical arena, and we intend to support both.
Concretely, that means qualifying the Ferrocene Rust compiler according to various safety standards, an effort that will eventually include the development and qualification of the necessary dynamic and static analysis tools. Ferrous Systems and AdaCore are also looking at safety-certified libraries, including language support (libcore) or additional user libraries. We are aiming at targeting various architectures and operating systems relevant to these markets. This vision will take time to come to fruition, and Ferrous Systems and AdaCore are poised to start by focusing on some specific aspects. Eventually, our objective is to support Rust as comprehensively as any other programming language relevant for high integrity application development.
While our initial work will be focused on pure Rust applications, our long-term commitment to Rust and Ada extends to developers who will be using both languages at the same time. We are looking at interoperability between them - including, in particular, the idea of developing bi-directional binding generators. We are also looking at using that interoperability ourselves, perhaps by developing formally proven and certified libraries in SPARK to be used by both Ada and Rust users.
Above and beyond, we are excited to open this new chapter of collaboration between the Rust and Ada communities. You can expect more news in the years to come!
If you are interested in more information about Ferrocene, please fill out this form.