Blog announcement article

Open Sourcing Ferrocene

Florian & Pietro
Article

Open Sourcing Ferrocene

Published on 4 min read
Ferrocene icon
Ferrocene
A Rust compiler toolchain for safety- and mission-critical environments.

    Today we’re publishing Ferrocene, the Rust compiler for safety-critical and cyber-security use, as an open source project. After 2 years of work, we feel ready to make it available - but also fully open source under the classic Rust license: Apache-2.0 OR MIT.

    You can find Ferrocene on GitHub in the ferrocene/ferrocene repository, and read its docs on public-docs.ferrocene.dev.

    What is Ferrocene?

    Ferrocene is the main Rust compiler - rustc - but quality managed and qualified for use in automotive and industrial environments (currently by ISO 26262 and IEC 61508) by Ferrous Systems. It operates as a downstream to the Rust project, further increasing its testing and quality on specific platforms. We will publish further detailed blog posts on the components and changes in Ferrocene in the coming weeks.

    All changes we made to increase the quality of the Rust compiler have already made it to the main Rust project upstream. See Pietro’s blog post for more details.

    Open Source compilers for Open Source ecosystems

    Rust - both safety-critical and non-safety critical - is a predominantly open source ecosystem. This plays well with the emerging industrial open source ecosystem, for example through the Eclipse Software Defined Vehicle Group. Open source ecosystems need open-source - as opposed to open-source based - toolchains. This includes the material used for qualifying those toolchains, which historically were never open sourced.

    Open source components allow unparalleled traceability, including the ability to inspect and audit. The standard combination between the Apache 2.0 and MIT licenses makes it easy to integrate Ferrocene and its components into your project workflow - including referencing the safety manuals.

    While Ferrocene will be released under open source licenses, we won’t be able to accept contributions from the general public. We’re a small team, and we need to ensure all contributions to the Ferrocene project meet the standards of quality and applicable regulations needed for qualification. We’ll go into more details about Ferrocene’s contribution policy in a future blog post.

    Available for Purchase Later This Year

    Finally, despite Ferrocene being open source, if you want pre-built binaries that are validated and given long-term support by Rust experts, that comes at a cost. This cost covers particularly long term support over what the Rust project guarantees, the safety of our build infrastructure and the support that we give over it, up to certification support. But even on lower tiers, Ferrous Systems will actively inform you of issues found in older versions of the shipped compilers and support the Rust project in fixing issues in upcoming ones.

    Ferrocene will be available for purchase by individuals and companies later this year at €25 per month per seat (or €240 per seat if paying annually). Purchasing Ferrocene will grant you access to the pre-built binaries and packages of our qualified compilers, and the rendered qualification documents for all versions of Ferrocene. Early access is available right now for organizations with more than 10 users: contact us if you're interested.

    Support plans, and Ferrous Systems’ digital signatures of the qualification documents (to present to the assessors when certifying your projects), are going to be available separately. Contact us for more information!

    Other than that, Ferrocene is the upstream Rust compiler as you know it, and the source code of our qualification material is open source for you to inspect - know before you buy!

    We have already supported Rust for many years, as you can see on our open source page, and Ferrous Systems is one of the largest contributors to the Rust project. We are looking forward to contributing even more.

    Ferrocene 23.06 is Coming Soon

    Ferrocene 23.06.0 will be the first release of Ferrocene to be qualified according to ISO 26262 (ASIL D) and IEC 61508 (SIL 4), and it’s almost ready! All of the technical assessments by the relevant inspectors are complete, and we are waiting for a few minor changes before the qualification certificate will be delivered.

    Unfortunately Ferrocene 23.06.0 contains proprietary information of a previous partner of ours, and its source code cannot be open sourced as-is. As soon as version 23.06.0 is released, we’ll start working on Ferrocene 23.06.1, and we commit to open source it as soon as the partner’s proprietary information has been scrubbed. We’ll then continue its development in the open, and all future qualified versions will be open source as well.

    Looking Forward

    The open sourcing of Ferrocene is a major step forward for the Ferrocene project and the Rust ecosystem as a whole, but that’s not the end of the road for us! We’ll publish a blog post in the coming weeks detailing our roadmap for this year and our future plans. For now, you can expect these improvements in the near future:

    • We will release Ferrocene 23.06.0, and right after prepare the open sourcing of Ferrocene 23.06.1 over the next month.

    • We will improve the system compatibility, by adding Windows support as a host platform and widening the system requirements for Linux.

    • We will open source and release criticalup, Ferrocene’s installer, with the goal of providing a similar experience to upstream’s rustup. Criticalup will also offer signed MSI installers for easy deployment into Windows corporate environment, generated with axo’s awesome cargo-dist tool.