Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions arewesafetycriticalyet.org/docs/coding_guidelines/meetings
4 changes: 3 additions & 1 deletion arewesafetycriticalyet.org/docs/coding_guidelines/members.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
sidebar_position: 3
---
# Members

| Member Name | Affiliation | Role | GitHub Username |
Expand Down Expand Up @@ -67,4 +70,3 @@
| Andreas Weis | ekxide IO GmbH | Producer | @ComicSansMS |
| Arshad Mahmood | SpinorML | Producer | @arshadm |
| Jason Newcomb | Rust Project - Clippy Team | Producer | @Jarcho |

3 changes: 3 additions & 0 deletions arewesafetycriticalyet.org/docs/coding_guidelines/mission.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
sidebar_position: 2
---
# Mission Statement

Develop a community-vetted coding guideline for Rust in safety-critical applications. A living document that is updated as features are added to Rust and we learn more by doing.
Expand Down
1 change: 1 addition & 0 deletions arewesafetycriticalyet.org/docs/liaison/meetings
3 changes: 3 additions & 0 deletions arewesafetycriticalyet.org/docs/liaison/members.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
sidebar_position: 1
---
# Members

| Member Name | Affiliation | GitHub Username |
Expand Down
2 changes: 1 addition & 1 deletion arewesafetycriticalyet.org/docs/main/iso26262.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Table 1 — Topics to be covered by modelling and coding guidelines
| ID | Method | Solution: Rust Native or Tool | Readiness |
| :--- | :--- | :--- | :--- |
| **1a** | Enforcement of low complexity | (Process) **statically enforceable** by clippy tool e.g. cyclomatic_complexity | 🟢 |
| **1b** | Use of language subsets | (Language) **coding guidelines** (are in progress by Subcommittee), need to be developed individually | 🟡 |
| **1b** | Use of language subsets | (Language) coding guidelines (are in progress by Subcommittee), need to be developed individually | 🟡 |
| **1c** | Enforcement of strong typing | (Language) **inherent** feature of Rust | 🟢 |
| **1d** | Use of defensive implementation techniques | (Architecture) **encouraged** by use of Types `Option`/`Result`,`assert!`/`panic!` macros, exhaustive match, mandatory bounds checking on array/slice access, and explicit per-operation overflow handling available via checked_*/saturating_* methods (can also be allowed implicitly by configuring) | 🟢 |
| **1e** | Use of well-trusted design principles | (Architecture) **encouraged** by Rust inherent features like encapsulation and RAII by default | 🟢 |
Expand Down
1 change: 1 addition & 0 deletions arewesafetycriticalyet.org/docs/tooling/meetings
6 changes: 5 additions & 1 deletion arewesafetycriticalyet.org/docs/tooling/members.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
position: 2
sidebar_position: 2
---

# Members
Expand Down Expand Up @@ -41,4 +41,8 @@ position: 2
- Jonatan Hatakeyama Zeidler (Brainlab SE)
- Stefan Akatyschew
- Zalán Bálint Lévai
- Máté János Kovács
- Kartik Ohlan
- Everton Oriente
- Adam Milner (Waabi)
- Alexandru Radovici (Moderator)
5 changes: 4 additions & 1 deletion arewesafetycriticalyet.org/docs/tooling/open-topics.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
sidebar_position: 5
---
# Open Topics

This page lists open topics related to Rust tooling for safety critical domains.
Expand All @@ -6,7 +9,7 @@ This page lists open topics related to Rust tooling for safety critical domains.

No generally applicable tool exists to inject faults in Rust projects during testing.

- **Coding Guideline:**
- Coding Guideline:

No official Rust coding guidelines currently exist, so no tool can enforce them.
The Coding Guidelines subcommittee is actively working on defining Rust coding guidelines.
Expand Down
3 changes: 3 additions & 0 deletions arewesafetycriticalyet.org/docs/tooling/rfc-tools-review.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
---
sidebar_position: 4
---
# Tools List Maintenance Flows

This section defines how the tools list is managed by the tooling subcommittee.
Expand Down
4 changes: 2 additions & 2 deletions arewesafetycriticalyet.org/docs/tooling/statement.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
position: 1
sidebar_position: 1
---
# Mission Statement

1. Aggregate community-vetted minimal required tooling package to be able to certify Rust in safety-critical applications.
2. Provide and maintain a document with a list of the minimal required tools and their development status.
3. Possibly develop a curricula used for training in safety critical Rust (this is still te be determined of we need a different subcommittee for it).

See also: [Tools list](./tools-list)
See also: [Tools list](./tools-list)
2 changes: 1 addition & 1 deletion arewesafetycriticalyet.org/docs/tooling/tools-list.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
position: 3
sidebar_position: 3
---

import ToolsList from '@site/src/components/ToolsList';
Expand Down
139 changes: 76 additions & 63 deletions arewesafetycriticalyet.org/docusaurus.config.ts
Original file line number Diff line number Diff line change
@@ -1,144 +1,157 @@
import { themes as prismThemes } from 'prism-react-renderer';
import type { Config } from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';
import { themes as prismThemes } from "prism-react-renderer";
import type { Config } from "@docusaurus/types";
import type * as Preset from "@docusaurus/preset-classic";

// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)

const baseUrl = process.env.BASE_URL || '/';
const baseUrl = process.env.BASE_URL || "/";

const config: Config = {
title: 'Are We Safety Critical Yet?',
tagline: 'Tracking Rust\'s readiness for safety-critical development across industry standards.',
favicon: 'img/favicon.ico',
title: "Are We Safety Critical Yet?",
tagline:
"Tracking Rust's readiness for safety-critical development across industry standards.",
favicon: "img/favicon.ico",

// Set the production url of your site here
url: 'https://your-docusaurus-site.example.com',
url: "https://your-docusaurus-site.example.com",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',
baseUrl: "/",

// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: 'facebook', // Usually your GitHub org/user name.
projectName: 'docusaurus', // Usually your repo name.
organizationName: "facebook", // Usually your GitHub org/user name.
projectName: "docusaurus", // Usually your repo name.

onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",

// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
defaultLocale: "en",
locales: ["en"],
},

markdown: {
mermaid: true,
},

themes: ['@docusaurus/theme-mermaid'],
themes: ["@docusaurus/theme-mermaid"],

presets: [
[
'classic',
"classic",
{
docs: {
path: 'docs/main',
sidebarPath: './docs/sidebars.ts',
path: "docs/main",
sidebarPath: "./docs/sidebars.ts",
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
editUrl:
'https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/arewesafetycriticalyet.org',
"https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/arewesafetycriticalyet.org",
},
blog: false,
theme: {
customCss: './src/css/custom.css',
customCss: "./src/css/custom.css",
},
} satisfies Preset.Options,
],
],

plugins: [
[
'@docusaurus/plugin-content-docs',
"@docusaurus/plugin-content-docs",
{
id: 'coding_guidelines',
path: 'docs/coding_guidelines',
routeBasePath: 'coding_guidelines',
sidebarPath: './docs/sidebarsCodingGuidelines.ts',
id: "coding_guidelines",
path: "docs/coding_guidelines",
routeBasePath: "coding_guidelines",
sidebarPath: "./docs/sidebarsCodingGuidelines.ts",
// ... other options
},
],
[
'@docusaurus/plugin-content-docs',
"@docusaurus/plugin-content-docs",
{
id: 'tooling',
path: 'docs/tooling',
routeBasePath: 'tooling',
sidebarPath: './docs/sidebarsTooling.ts',
id: "tooling",
path: "docs/tooling",
routeBasePath: "tooling",
sidebarPath: "./docs/sidebarsTooling.ts",
// ... other options
},
],
[
'@docusaurus/plugin-content-docs',
"@docusaurus/plugin-content-docs",
{
id: 'liaison',
path: 'docs/liaison',
routeBasePath: 'liaison',
sidebarPath: './docs/sidebarsLiaison.ts',
id: "liaison",
path: "docs/liaison",
routeBasePath: "liaison",
sidebarPath: "./docs/sidebarsLiaison.ts",
// ... other options
},
]
],
function webpackConfigPlugin() {
return {
name: "custom-webpack-plugin",
configureWebpack() {
return {
resolve: {
symlinks: false,
},
};
},
};
},
],

themeConfig: {
// Replace with your project's social card
image: 'img/docusaurus-social-card.jpg',
image: "img/docusaurus-social-card.jpg",
navbar: {
title: 'Are We Safety Critical Yet?',
title: "Are We Safety Critical Yet?",
logo: {
alt: 'The Safety Critical Rust Logo',
src: 'img/rust_safety_logo.png',
alt: "The Safety Critical Rust Logo",
src: "img/rust_safety_logo.png",
},
items: [
{
type: 'docSidebar',
docsPluginId: 'coding_guidelines',
sidebarId: 'codingGuidelinesSidebar',
position: 'left',
label: 'Coding Guidelines',
type: "docSidebar",
docsPluginId: "coding_guidelines",
sidebarId: "codingGuidelinesSidebar",
position: "left",
label: "Coding Guidelines",
},
{
type: 'docSidebar',
docsPluginId: 'tooling',
sidebarId: 'toolingSidebar',
position: 'left',
label: 'Tooling',
type: "docSidebar",
docsPluginId: "tooling",
sidebarId: "toolingSidebar",
position: "left",
label: "Tooling",
},
{
type: 'docSidebar',
docsPluginId: 'liaison',
sidebarId: 'liaisonSidebar',
position: 'left',
label: 'Liaison',
type: "docSidebar",
docsPluginId: "liaison",
sidebarId: "liaisonSidebar",
position: "left",
label: "Liaison",
},
{
href: 'https://github.com/rustfoundation/safety-critical-rust-consortium',
label: 'GitHub',
position: 'right',
href: "https://github.com/rustfoundation/safety-critical-rust-consortium",
label: "GitHub",
position: "right",
},
],
},
footer: {
style: 'dark',
style: "dark",
links: [
{
title: 'Community',
title: "Community",
items: [
{
label: 'This site is powered through Netlify',
href: 'https://netlify.com',
label: "This site is powered through Netlify",
href: "https://netlify.com",
},
],
},
Expand Down
2 changes: 1 addition & 1 deletion meetings/2025-02-19/summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
rules apply.
- **Membership Status:** Currently 109 members; discussion on maintaining a
low-friction join process while continuing to vet new member legitimacy.
- **Coding Guidelines:** Focus on drafting guidelines, starter project of “Learn
- Coding Guidelines: Focus on drafting guidelines, starter project of “Learn
Unsafe Rust” chapters contribution, aliged on standards mapping as an appendix
item, north star to be safe use of Rust, useful patterns for eliminating
safety issues, with standards compliance as a second-order effect of following
Expand Down
4 changes: 2 additions & 2 deletions meetings/2025-05-15/summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
- **Website**: https://arewesafetycriticalyet.org is live. Now need to add more content.
- **Survey results**: Reviewed [survey results](https://docs.google.com/presentation/d/1bUCP6hYtyLq3jeOgxWRv-El1Babite7o9QNXVpjdgr0/edit?slide=id.g350e3d6870f_0_25#slide=id.g350e3d6870f_0_25). 200+ responses. Key insights particularly around adoption where coding guidelines, materials for making the case, certified compilers and toolings were the main items of need.
- **Rust specification**: FLS is now part of the Rust project. Working on how to synchronize the FLS and the Reference. RFCs won't yet be blocked on FLS changes, but maybe stabilization could in the future.
- **Coding guidelines**: Some coding guidelines are landing. Long-term could see coding guidelines as part of a clippy lint of sorts. Aligning with MISRA.
- Coding guidelines: Some coding guidelines are landing. Long-term could see coding guidelines as part of a clippy lint of sorts. Aligning with MISRA.
- **Tooling**: Need to think about the bar on how tools are added to tooling recommendations list.
- **Liaison**: The team has specific organization contact points for upstreaming and collaboration including AUTOSAR and WG23.
- **Next meeting**: No alignment on when the next meeting should be and where. A poll will be created to try to finalize.
- **MISRA vs. CERT**: MISRA has a deviation process. CERT rarely has a deviation process. Need to decide whether to go more towards a set of rules (like MISRA) or an iterative improvement process (like CERT), or find a more middle ground (if possible).
- **Streamlining Qualification**: Rust reduces mistakes. Qualification should be easier. Pooling resources to help.
- **Streamlining Qualification**: Rust reduces mistakes. Qualification should be easier. Pooling resources to help.
5 changes: 2 additions & 3 deletions subcommittee/coding-guidelines/meetings/2024-10-22/minutes.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ Joel Marcey
* Understanding Rust and/or safety critical
* How are the guidelines enforced?
* (These are _not_ presented here due to decision to rework these in 2024-11-11 meeting)
* [**Mission Statement**](../../mission-statement.md)
* [**Mission Statement**](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines/mission-statement.md)
* Develop a community-vetted coding guideline for Rust in safety-critical applications
* Provide feedback offline
* [**Unsafe coding guidelines proposal**](../../initiatives/safe-use-of-unsafe-guidelines/safe-use-of-unsafe-guidelines-proposal.md)
* [**Unsafe coding guidelines proposal**](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines/initiatives/safe-use-of-unsafe-guidelines/safe-use-of-unsafe-guidelines-proposal.md)
* How does the `unsafe` keyword and usage fit into our coding guidelines?
* This will be the first item of output by the subcommittee
* Peter \- check and see what we can use out of JAE1020
Expand All @@ -84,4 +84,3 @@ Joel Marcey
## Material

Any material to read before the meeting should be included here.

4 changes: 2 additions & 2 deletions subcommittee/coding-guidelines/meetings/2024-11-19/minutes.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
## Agenda

0. Meeting recordings / transcriptions - Live discussion
1. Acceptance of [Previous Meeting Minutes](../2024-November-05/minutes.md)
1. Acceptance of [Previous Meeting Minutes](../2024-11-05/minutes.md)
2. Shift meeting time 2 hours earlier to accommodate Asia participants (Pete LeVasseur)
3. Contributor Expectations - Approval (Pete LeVasseur)
4. Safe Usage of Unsafe Guidelines - Check-in (Pete LeVasseur)
* [Learn `unsafe` Rust](https://github.com/google/learn_unsafe_rust) - Offline Review & Q&A
* [Examples of unsafe patterns](../../initiatives/safe-use-of-unsafe-guidelines/unsafe-example-usage.md) - Chapter writeup
* [Examples of unsafe patterns](https://github.com/rustfoundation/safety-critical-rust-consortium/tree/main/subcommittee/coding-guidelines/initiatives/safe-use-of-unsafe-guidelines/unsafe-example-usage.md) - Chapter writeup
5. MISRA + Rust (Alex Celeste)
6. Round table

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Supplemental material to the agenda can be found on the [GitHub repo](https://gi
* Andrew Herridge 😀
* Lukas Wirth 🙁
* Espen Albrektsen 🙂
* Markus Hosch <_<
* Markus Hosch \<_\<
* Enow Scott 🙂
* Achim Kriso 🙂
* Koppany Pazman
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# **Coding Guidelines Subcommittee Meeting on 2025-06-25 @ 15:00 UTC / 16:00 BST / 11:00 EDT**
# Coding Guidelines Subcommittee Meeting on 2025-06-25 @ 15:00 UTC / 16:00 BST / 11:00 EDT

[Conversion](https://www.worldtimebuddy.com/?qm=1&lid=5,14,8,12&h=5&date=2025-6-25&sln=11-12&hf=1) between common time zones of attendees.

Expand Down Expand Up @@ -76,4 +76,3 @@ Any material to read before the meeting should be included here.
### **GitHub Project Board for Work Items**

* [Work Item Board](https://github.com/orgs/rustfoundation/projects/1)

Loading
Loading