The automotive industry is evolving quickly with software playing a far more crucial role in the development of modern vehicles. Placing safety and reliability at the forefront, the choice of programming language becomes paramount. In this blog, we explore the importance and potential of Rust in automotive software engineering. We will dive into its capabilities, obstacles, the unique Rust community, and how Elektrobit software engineering services align with the power of Rust.
Why Rust in automotive?
Rust’s emergence in the automotive industry stems from its strong focus on memory safety, performance, and reliability, which have become increasingly vital in the automotive industry. There is also the factor of Rust’s one-of-a-kind community. These combined attributes make it an appealing choice for building safety-critical software components in vehicles.
Rising demand for connectivity in cars is driven by user expectations and legislation, coupled with the fact that new car features are mainly implemented via software. In this context, Rust’s ability to ensure memory safety and optimize performance is invaluable.
Furthermore, as cost reduction becomes a pressing concern, Rust’s potential to deliver efficient and reliable software solutions aligns perfectly with the industry’s needs. Cost-saving and efficiency aspects of using Rust such as memory safety, performance optimization, developer productivity, scalability, community, and tooling will be explored in a separate blog.
Automotive software engineering with Rust
The language includes all the necessary tools, allowing code reusability leading to accelerated development. Rust’s compatibility with other languages enables seamless integration with existing code bases, facilitating a gradual transition rather than a complete rewrite. Rust’s ability to interface with C and C++ code allows for the extension of existing code bases.
According to this 2020 research, 60-70% of vulnerabilities are caused by memory issues. Rust eliminates whole classes of such bugs. Embracing open-source practices is crucial for incorporating Rust into the automotive domain. Elektrobit has recognized this importance and contributed to the Rust community by open-sourcing changes, ensuring a collaborative environment.
That said, established languages like C and C++ have long been prevalent in the automotive industry, making it challenging to find programmers experienced in Rust. However, the time invested in learning Rust is worthwhile, as it offers a modern, efficient, and safe alternative to traditional languages.
Additionally, while there is currently no qualified compiler available for functional safety (e.g., ASIL), progress is being made by several companies to develop tools that meet these requirements.
Elektrobit and Rust
The Rust community stands out for its innovative and out-of-the-box thinking. It embraces an open-minded and tolerant culture, fostering a collaborative environment for developers. Elektrobit’s participation in this community reinforces its commitment to open-source programming languages and showcases its competence in Rust.
Elektrobit’s dedication to the Rust ecosystem is evident through its engagement. As of June 22, 2023, Elektrobit has had 30 independent contributions accepted by the Rust community, with more in review and preparation. Here is a look at a partial list:
- Additions to the official Rust documentation
- Fixes and improvements of the Rust language test framework (used for the Rust compiler)
- Fixes in the standard library of Rust that improve also the quality on Android, millions of mobile phones already (or are about to) benefit from our changes
- Improvements and enhancements (e.g. QNX support, done together with Blackberry) in several third-party libraries in the Rust eco system
This collaboration highlights Elektrobit’s active involvement and commitment to enhancing Rust’s ecosystem. Working alongside the Rust community offers the advantage of direct communication with developers, fostering a low barrier for feedback and answers.
Rust, with its focus on memory safety, performance, and reliability, holds immense potential in the automotive industry. By leveraging compatibility with existing code bases, automotive software engineers can harness the benefits of the language while preserving and reusing their valuable code assets. The Rust community’s innovative and collaborative nature, combined with Elektrobit’s competence and expertise, ensures exciting possibilities in the software-defined vehicle landscape.
As part of Elektrobit’s dedication to empowering safety and cyber-security in the automotive industry, embracing Rust stipulates one building block in developing reliable and performant software for the future of vehicles. Stay tuned for more about Rust and our ongoing commitment to supporting Rust in automotive!