Skip to content

Commit feb5923

Browse files
authored
Merge pull request #2666 from eclipse-score/lb_rust_in_safety_critical_dr
DR-001-Arch: Rust Readiness for Safety-Critical Components
2 parents bd480aa + 4b4622d commit feb5923

File tree

2 files changed

+109
-0
lines changed

2 files changed

+109
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<!--
2+
Copyright (c) 2026 Contributors to the Eclipse Foundation
3+
4+
See the NOTICE file(s) distributed with this work for additional
5+
information regarding copyright ownership.
6+
7+
This program and the accompanying materials are made available under the
8+
terms of the Apache License Version 2.0 which is available at
9+
https://www.apache.org/licenses/LICENSE-2.0
10+
11+
SPDX-License-Identifier: Apache-2.0
12+
-->
13+
14+
# DR-001-Arch: Rust Readiness for Safety-Critical Components
15+
16+
* **Date:** 2026-03-06
17+
18+
```{dec_rec} Rust Readiness for Safety-Critical Components
19+
:id: dec_rec__arch__rust_safety_critical
20+
:status: accepted
21+
:context: Architecture
22+
:decision: Rust is ready for use in ASIL-B safety-critical components
23+
```
24+
25+
---
26+
27+
## Context / Problem
28+
29+
At the [Architecture F2F in November 2025](https://github.com/orgs/eclipse-score/discussions/1922#discussioncomment-14891648), the project deferred the Rust readiness decision to individual modules with a February 2026 assessment deadline. Key gaps included coverage, compiler qualification, and libcore/libstd qualification.
30+
31+
The [Technical Lead Circle meeting on 2026-03-06](https://github.com/orgs/eclipse-score/discussions/2662) reviewed evidence and concluded that Rust is ready for ASIL-B safety-critical use in S-CORE 1.0.
32+
33+
## Decision
34+
35+
Rust is approved for use in ASIL-B safety-critical components.
36+
37+
## Rationale
38+
39+
Critical tooling (compiler, linting, formatting) is complete. Remaining mandatory gaps (coverage qualification, libcore/libstd extensions) have commercial mitigation paths available.
40+
41+
### Evidence Basis
42+
The evidence was gathered by the S-CORE Rust Community and documented in [Weekly RUST Meeting, 2026-03-04](https://github.com/orgs/eclipse-score/discussions/236#discussioncomment-15997719):
43+
44+
```markdown
45+
# Rust ASIL-B end of 2026 - feasibility overview
46+
47+
Overall tracking board: https://github.com/orgs/eclipse-score/projects/34/views/7
48+
Mandatory scope: https://github.com/orgs/eclipse-score/projects/34/views/8
49+
50+
## Mandatory Scope
51+
52+
### ✅ Code formatting
53+
Bazel integration + CI/CD integration ready and rolled out in few Rust repositories that ensures code is aligned by same S-CORE wide configuration
54+
55+
- Verification report (https://eclipse-score.github.io/score/main/score_tools/tools_static_analysis_code_quality/clippy.html#doc_tool__clippy)
56+
57+
### ✅ Static code analysis - linting
58+
59+
- Bazel integration + CI/CD integration ready and rolled out in few Rust repositories that ensures code is aligned by same S-CORE wide configuration
60+
- tool have available report verification with confidence HIGH, meaning no qualification needed. (https://eclipse-score.github.io/score/main/score_tools/> ols_static_analysis_code_quality/clippy.html#doc_tool__clippy)
61+
62+
63+
### 📈 Code coverage
64+
Bazel integration + CI/CD integration ready and rolled out in few Rust repositories
65+
66+
- Using build in Rust test framework for writing and running TC
67+
- Tool for coverage calculation used from Ferrocene
68+
- Ferrocene provided offer for tool qualification - ✅ offer available at https://github.com/eclipse-score/score/issues/2020
69+
70+
### 📈 Certified `libcore` and `libstd` subset
71+
72+
- `libcore` certified as ASIL-B in quite big scope already
73+
- Ferrocene provided commercial offer for extension of those two in required timeline. - https://github.com/eclipse-score/score/issues/2020
74+
75+
### ✅ Qualified Rust compiler
76+
77+
- Ferrocene and QNX announced qualified compiler being available at Q3 2025 (QNX Funded)
78+
- OEM/TIER1 can contact ferrocene for compiler offer with maintenance (around ~~25euro/mth/seat)
79+
80+
### Good to have
81+
82+
#### 📈 Coding guidelines
83+
84+
- Plan to use SCRCG (https://github.com/rustfoundation/safety-critical-rust-coding-guidelines)
85+
- Planned availability of first version mid 2026 (not confirmed but there is good progress there)
86+
87+
88+
### Dynamic analysis
89+
`Miri` tool can be used, requires integration with bazel (some repos run it via cargo already) - planned to be done soon (**weeks**), currently no chnical > blockers
90+
```
91+
92+
## Consequences
93+
94+
Feature teams can use Rust for safety-critical components without additional project-level approval. Module-level architecture decisions should document language choice rationale but don't need to re-justify Rust's safety-critical readiness.
95+
96+
## Remaining Risks
97+
98+
- Qualification timeline: Coverage and libcore/libstd work must be ordered latest by July 2026 to make the referenced timeline
99+
- Assessment is specific to QNX 8 with Ferrocene compiler; other platforms need to be evaluated via the [OS onboarding process](https://eclipse-score.github.io/score/main/modules/os/operating_systems/docs/index.html) when promoting to the Certifiable Level

docs/design_decisions/index.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,16 @@ Decision Records
1616
================
1717

1818

19+
Architecture
20+
~~~~~~~~~~~~
21+
22+
.. toctree::
23+
:maxdepth: 1
24+
:glob:
25+
26+
DR-*-arch*
27+
28+
1929
Infrastructure
2030
~~~~~~~~~~~~~~
2131

0 commit comments

Comments
 (0)