14 Jan 2026
Planet Mozilla
The Mozilla Blog: How founders are meeting the moment: Lessons from Mozilla Ventures’ 2025 portfolio convening

At Mozilla, we've long believed that technology can be built differently - not only more openly, but more responsibly, more inclusively, and more in service of the people who rely on it. As AI reshapes nearly every layer of the internet, those values are being tested in real time.
Our 2025 Mozilla Ventures Portfolio Convening Report captures how a new generation of founders is meeting that moment.
At the Mozilla Festival 2025 in Barcelona, from Nov. 7-9, we brought together 50 founders from 30 companies across our portfolio to grapple with some of the most pressing questions in technology today: How do we build AI that is trustworthy and governable? How do we protect privacy at scale? What does "better social" look like after the age of the global feed? And how do we ensure that the future of technology is shaped by people and communities far beyond today's centers of power?
Over three days of panels, talks, and hands-on sessions, founders shared not just what they're building, but what they're learning as they push into new terrain. What emerged is a vivid snapshot of where the industry is heading - and the hard choices required to get there.
Open source as strategy, not slogan
A major theme emerging across conversations with our founders was that open source is no longer a "nice to have." It's the backbone of trust, adoption, and long‑term resilience in AI, and a critical pillar for the startup ecosystem. But these founders aren't naïve about the challenges. Training frontier‑scale models costs staggering sums, and the gravitational pull of a few dominant labs is real. Yet companies like Union.ai, Jozu, and Oumi show that openness can still be a moat - if it's treated as a design choice, not a marketing flourish.
Their message is clear: open‑washing won't cut it. True openness means clarity about what's shared -weights, data, governance, standards - and why. It means building communities that outlast any single company. And it means choosing investors who understand that open‑source flywheels take time to spin up.
Community as the real competitive edge
Across November's sessions, founders returned to a simple truth: community is the moat. Flyte's growth into a Linux Foundation project, Jozu's push for open packaging standards, and Lelapa's community‑governed language datasets all demonstrate that the most durable advantage isn't proprietary code - it's shared infrastructure that people trust.
Communities harden technology, surface edge cases, and create the kind of inertia that keeps systems in place long after competitors appear. But they also require care: documentation, governance, contributor experience, and transparency. As one founder put it, "You can't build community overnight. It's years of nurturing."
Ethics as infrastructure
One of the most powerful threads came from Lelapa AI, which reframes data not as raw material to be mined but as cultural property. Their licensing model, inspired by Māori data sovereignty, ensures that African languages - and the communities behind them - benefit from the value they create. This is openness with accountability, a model that challenges extractive norms and points toward a more equitable AI ecosystem.
It's a reminder that ethical design isn't a layer on top of technology - it's part of the architecture.
The real competitor: fear
Founders spoke candidly about the biggest barrier to adoption: fear. Enterprises default to hyperscalers because no one gets fired for choosing the biggest vendor. Overcoming that inertia requires more than values. It requires reliability, security features, SSO, RBAC, audit logs - the "boring" but essential capabilities that make open systems viable in real organizations.
In other words, trust is built not only through ideals but through operational excellence.
A blueprint for builders
Across all 16 essays, a blueprint started to emerge for founders and startups committed to building responsible technology and open source AI:
- Design openness as a strategic asset, not a giveaway.
- Invest in community early, even before revenue.
- Treat data ethics as non‑negotiable, especially when working with marginalized communities.
- Name inertia as a competitor, and build the tooling that makes adoption feel safe.
- Choose aligned investors, because misaligned capital can quietly erode your mission.
Taken together, the 16 essays in this report point to something larger than any single technology or trend. They show founders wrestling with how AI is governed, how trust is earned, how social systems can be rebuilt at human scale, and how innovation looks different when it starts from Lagos or Johannesburg instead of Silicon Valley.
The future of AI doesn't have to be centralized, extractive or opaque. The founders in this portfolio are proving that openness, trustworthiness, diversity, and public benefit can reinforce one another - and that competitive companies can be built on all four.
We hope you'll dig into the report, explore the ideas these founders are surfacing, and join us in backing the people building what comes next.
The post How founders are meeting the moment: Lessons from Mozilla Ventures' 2025 portfolio convening appeared first on The Mozilla Blog.
14 Jan 2026 5:00pm GMT
This Week In Rust: This Week in Rust 634
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @thisweekinrust.bsky.social on Bluesky or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Want TWIR in your inbox? Subscribe here.
Updates from Rust Community
Official
Newsletters
Project/Tooling Updates
- Bevy 0.18
- Exponential growth continued - cargo-semver-checks 2025 Year in Review
- This Week in Slatron v1.1: The intelligent TV station manager introduces AI DJ hosts w/ TTS support for DIY hackable TV stations, radio, and digital signage.
- SeaORM 2.0 Migration Guide
- BugStalker v0.4.0 - Modern debugger for Linux x86-64. Written in Rust for Rust programs. now with VSCode support.
- Announcing cadd: a library for painless checked arithmetic and conversions
- READ_ONCE(), WRITE_ONCE(), but not for Rust
- GuardianDB 0.14.0 - High-performance, local-first decentralized database built on Rust and Iroh
- A year of work on the ALPM project
- GlueSQL v0.19 adds parameter binding and customizable query planners
- diesel-guard: Your Diesel Migrations Might Be Ticking Time Bombs.
- The Rapier physics engine 2025 review and 2026 goals
- Tako v0.5.0 → v0.7.1-2: from "nice router" to "mini platform"
Observations/Thoughts
- The State of Rust Cryptography in 2026
- Garbage collection is contrarian
- Virtual Places and Borrow Checker Integration
- [video] 39c3 - Xous: A Pure-Rust Rethink of the Embedded Operating System
- [video] Fast and Safe Image Decoding in Rust
- [video] ere: Compiling Regular Expressions at Build-Time
- [video] Rust at Volvo Cars
- [audio] Radar with Jeff Kao
Rust Walkthroughs
[ES] Command Pattern in Rust: When intent doesn't need to be an object
- [series] Part 3: Model Architecture, Building an LLM from Scratch in Rust
- The Impatient Programmer's Guide to Bevy and Rust: Chapter 5 - Let There Be Pickups
- [audio] Netstack.FM episode 22 - Rust URL with Simon Sapin
Miscellaneous
Crate of the Week
This week's crate is diesel-guard, a linter against dangerous Postgres migrations.
Thanks to Alex Yarotsky for the self-suggestion!
Please submit your suggestions and votes for next week!
Calls for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. If you are a feature implementer and would like your RFC to appear in this list, add a call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
- No calls for testing were issued this week by Rust, Cargo, Rustup or Rust language RFCs.
Let us know if you would like your feature to be tracked as a part of this list.
Call for Participation; projects and speakers
CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
- Diesel - diesel print-schema produces uncompileable schema with column named "table"
- GuardianDB - Create Benchmarks
- GuardianDB - Create cohesive usage examples
- GuardianDB - Translate documentation to English
- rung - Add shell completions for bash/zsh/fish
- rung - Add --quiet flag to suppress non-essential output
- rung - Support NO_COLOR environment variable
- rung - Add rung top / rung bottom navigation commands
- rung - Add rung log command to show stack commits
- rung - Add integration test for sync with merge conflicts
If you are a Rust project owner and are looking for contributors, please submit tasks here or through a PR to TWiR or by reaching out on Bluesky or Mastodon!
CFP - Events
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
- RustWeek 2026 | CFP closes 2026-01-18 | Utrecht, The Netherlands | 2026-05-19 - 2026-05-20
- RustConf 2026 | CFP closes 2026-02-16 | Montreal, Quebec, Canada | 2026-09-08 - 2026-09-11
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on Bluesky or Mastodon!
Updates from the Rust Project
539 pull requests were merged in the last week
Compiler
Library
- add
AtomicPtr::null Vec::pushin consts MVP- add allocator parameter to
HashMap - implement
partial_sort_unstablefor slice - reflection MVP
- stabilize
Peekable::next_if_map(#![feature(peekable_next_if_map)]) - stabilize
slice::element_offset
Cargo
docs(unstable): expand docs for-Zbuild-analysisfeat(test): MakeCARGO_BIN_EXE_available at runtimefix(build-std): std link metadata propagate to userfix(info): resolve underscore vs hyphen mismatch in schema lookupfix(package): detect dirty files when run from workspace member- add Clippy like lint groups
- add
--idflag tocargo report timingsandcargo report rebuilds - display lockfile path in very verbose mode when blocking
- feat: in-memory only
Manifest - fix(timing)!: remove
--timings=<FMT>optional format values - fix: preserve
dep_namefor build script metadata - fixed incorrect version comparision during build script dependency selection
- improve error message for missing dependencies
- isolate build script metadata progation between std and non-std crates
- refactor: new type for unit index
- test: add
-Zunstable-optionswith custom targets
Rustdoc
Clippy
- A
returnin an iterator closure should not triggernever_loop strlen_on_c_strings: mention the specific type (CString orCStr)float_point_arithmetic: respect reduced applicabilitysingle_range_in_vec_init: don't apply the suggestion automaticallyunnecessary_map_or: respect reduced applicabilityuseless_conversion: respect reduced applicabilitymissing_enforced_import_rename: Do not enforce for underscoressuspicious_to_owned: improve lint messagestransmuting_null: Add checks forwithout_provenanceandwithout_provenance_mut- add new
duration_suboptimal_unitslint - allow
expectonimplforderive_ord_xor_partial_ord - clean-up
unnecessary_map_orandmanual_is_variant_and - do not ignore statements before a
breakwhen simplifying loop - do not show spans from external crates in
missing_trait_methods - do not warn about large stack arrays without having a valid span
- do not warn on arithmetic side effect for
String+String - enhance
needless_collectto cover vecpush-alike - fix
LimitStack::pop_atrin release builds - fix
clippy_utils::std_or_core(_)markingno_corecrates asstd - fix
map_unwrap_orfail to coverResult::unwrap_or - fix
significant_drop_tighteningsuggests wrongly for non-method usage - fix
str_to_stringwrongly unmangled macros - fix
unnecessary_to_ownedwrongly unmangled macros - fix: restrict
match_boolto 2 arms - improve
useless_conversion .into_iter()suggestion for nested references - more fixes for handling of macros
- overhaul
int_plus_one
Rust-Analyzer
- add inherit attributes for
extract_functionassist - configure flycheck using workspace.discoverConfig
- allow rust paths in symbol search
- fix ignore flag for test attributes with values
- fix loses exists guard for
move_guard - fix not applicable on statement for
convert_to_guarded_return - fix not complete
mutandrawin&x.foo() - fix not disable string escape highlights
- disable
unused_variablesandunused_mutwarnings - fix crate root search in world symbols duplicating root entries
- fix lifetimes len diagnostics for fn pointers
- fixes for builtin derive expansions
- hide renamed imports from macros in symbol index
- lowering crash with supertrait predicates
- make
naked_asm!()always return! - properly lower
SelfOnlypredicates - remove code made redundant by method resolution rewrite
- suggest traits other than ones in the environment crate
- sync cast checks to rustc again
- implement
Span::ByteRangefor proc-macro-srv - migrate
generate_mut_trait_implassist to use SyntaxEditor
Rust Compiler Performance Triage
Fairly quiet week, most changes due to new features which naturally carry some overhead for existing programs. Overall though a small improvement.
Triage done by @simulacrum. Revision range: 7c04f5d2..840245e9
3 Regressions, 1 Improvement, 4 Mixed; 2 of them in rollups 31 artifact comparisons made in total
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
Tracking Issues & PRs
- Stabilize ppc inline assembly
- const-eval: always do mem-to-mem copies if there might be padding involved
- Tracking Issue for
Vec::push_mut - Tracking Issue for
error_generic_member_access - FCW Lint when using an ambiguously glob imported trait
No Items entered Final Comment Period this week for Cargo, Rust RFCs, Leadership Council, Language Team, Language Reference or Unsafe Code Guidelines. Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
New and Updated RFCs
Upcoming Events
Rusty Events between 2026-01-14 - 2026-02-11 🦀
Virtual
- 2026-01-15 | Virtual (Berlin, DE) | Rust Berlin
- 2026-01-15 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-01-15 | Virtual (Berlin, DE) | Rust Berlin
- 2026-01-16 | Virtual (Tel Aviv-yafo, IL) | Rust 🦀 TLV
- 2026-01-18 | Virtual (Tel Aviv-yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2026-01-20 | Virtual (Washington, DC, US) | Rust DC
- 2026-01-21 | Virtual (Girona, ES) | Rust Girona
- 2026-01-21 | Virtual (Vancouver, BC, CA) | Vancouver Rust
- 2026-01-27 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-01-27 | Virtual (London, UK) | Women in Rust
- 2026-01-28 | Virtual (Girona, ES) | Rust Girona
- 2026-01-29 | Virtual (Amsterdam, NL) | Bevy Game Development
- 2026-01-29 | Virtual (Berlin, DE) | Rust Berlin
- 2026-01-29 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2026-02-04 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-02-07 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2026-02-10 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-02-10 | Virtual (London, UK) | Women in Rust
- 2026-02-11 | Virtual (Girona, ES) | Rust Girona
Asia
- 2026-01-17 | Delhi, IN | Rust Delhi
- 2026-02-05 | Seoul, KR | Seoul Rust (Programming Language) Meetup
- 2026-02-11 | Kuala Lumpur, MY | Rust Malaysia
Europe
- 2026-01-14 | Girona, ES | Rust Girona
- 2026-01-14 | Reading, UK | Reading Rust Workshop
- 2026-01-16 | Edinburgh, UK | Rust and Friends
- 2026-01-20 | Leipzig, SN, DE | Rust - Modern Systems Programming in Leipzig
- 2026-01-20 | Paris, FR | Rust Paris
- 2026-01-21 | Cambridge, UK | Cambridge Rust Meetup
- 2026-01-26 | Augsburg, DE | Rust Meetup Augsburg
- 2026-01-28 | Dortmund, DE | Rust Dortmund
- 2026-01-29 | Ostrava, CZ | MeetUpdate Ostrava
- 2026-02-04 | Darmstadt, DE | Rust Rhein-Main
- 2026-02-04 | München, DE | Rust Munich
- 2026-02-04 | Oxford, UK | Oxford ACCU/Rust Meetup.
- 2026-02-05 | Karlsruhe, DE | Rust Hack & Learn Karlsruhe
- 2026-02-11 | Basel, CH | Rust Basel
- 2026-02-11 | Reading, UK | Reading Rust Workshop
North America
- 2026-01-14 | Chicago, IL, US | Chicago Rust Meetup
- 2026-01-15 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-01-17 | Boston, MA, US | Boston Rust Meetup
- 2026-01-17 | Herndon, VA, US | NoVaLUG
- 2026-01-20 | San Francisco, CA, US | Svix
- 2026-01-20 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-01-21 | Austin, TX, US | Rust ATX
- 2026-01-22 | Boston, MA, US | Boston Rust Meetup
- 2026-01-22 | Mountain View, CA, US | Hacker Dojo
- 2026-01-24 | Boston, MA, US | Boston Rust Meetup
- 2026-01-28 | Los Angeles, CA, US | Rust Los Angeles
- 2026-01-29 | Atlanta, GA, US | Rust Atlanta
- 2026-01-29 | Nashville, TN, US | Music City Rust Developers
- 2026-01-31 | Boston, MA, US | Boston Rust Meetup
- 2026-02-03 | New York, NY, US | Rust NYC
- 2026-02-05 | Saint Louis, MO, US | STL Rust
- 2026-02-07 | Boston, MA, US | Boston Rust Meetup
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
I have written in dozens of computer languages, including specialized ones that were internal to Pixar (including one I designed). I spent decades writing C and C++. I wrote bit-slice microcode, coded for SIMD before many folks outside of Pixar had it.
I wrote the first malloc debugger that would stop your debugger at the source code line that was the problem. Unix workstation manufacturers had to do an unexpected release when this revealed all of the problems in their C libraries.
I am a better programmer in Rust for anything low-level or high-performance. It just keeps me from making an entire class of mistakes that were too easy to make in any language without garbage-collection.
Over the long term, anything that improves quality is going to win. There is a lot of belly-aching by folks who are too in love with what they've been using for decades, but it is mostly substance-free. Like people realizing that code marked "unsafe" is, surprise, unsafe. And that unsafe can be abused.
Thanks to Brian Kung for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by:
- nellshamrell
- llogiq
- ericseppanen
- extrawurst
- U007D
- mariannegoldin
- bdillo
- opeolluwa
- bnchi
- KannanPalani57
- tzilist
Email list hosting is sponsored by The Rust Foundation
14 Jan 2026 5:00am GMT
The Rust Programming Language Blog: What does it take to ship Rust in safety-critical?
This is another post in our series covering what we learned through the Vision Doc process. In our first post, we described the overall approach and what we learned about doing user research. In our second post, we explored what people love about Rust. This post goes deep on one domain: safety-critical software.
When we set out on the Vision Doc work, one area we wanted to explore in depth was safety-critical systems: software where malfunction can result in injury, loss of life, or environmental harm. Think vehicles, airplanes, medical devices, industrial automation. We spoke with engineers at OEMs, integrators, and suppliers across automotive (mostly), industrial, aerospace, and medical contexts.
What we found surprised us a bit. The conversations kept circling back to a single tension: Rust's compiler-enforced guarantees support much of what Functional Safety Engineers and Software Engineers in these spaces spend their time preventing, but once you move beyond prototyping into the higher-criticality parts of a system, the ecosystem support thins out fast. There is no MATLAB/Simulink Rust code generation. There is no OSEK or AUTOSAR Classic-compatible RTOS written in Rust or with first-class Rust support. The tooling for qualification and certification is still maturing.
Quick context: what makes software "safety-critical"
If you've never worked in these spaces, here's the short version. Each safety-critical domain has standards that define a ladder of integrity levels: ISO 26262 in automotive, IEC 61508 in industrial, IEC 62304 in medical devices, DO-178C in aerospace. The details differ, but the shape is similar: as you climb the ladder toward higher criticality, the demands on your development process, verification, and evidence all increase, and so do the costs.1
This creates a strong incentive for decomposition: isolate the highest-criticality logic into the smallest surface area you can, and keep everything else at lower levels where costs are more manageable and you can move faster.
We'll use automotive terminology in this post (QM through ASIL D) since that's where most of our interviews came from, but the patterns generalize. These terms represent increasing levels of safety-criticality, with QM being the lowest and ASIL D being the highest. The story at low criticality looks very different from the story at high criticality, regardless of domain.
Rust is already in production for safety-critical systems
Before diving into the challenges, it is worth noting that Rust is not just being evaluated in these domains. It is deployed and running in production.
We spoke with a principal firmware engineer working on mobile robotics systems certified to IEC 61508 SIL 2:
"We had a new project coming up that involved a safety system. And in the past, we'd always done these projects in C using third party stack analysis and unit testing tools that were just generally never very good, but you had to do them as part of the safety rating standards. Rust presented an opportunity where 90% of what the stack analysis stuff had to check for is just done by the compiler. That combined with the fact that now we had a safety qualified compiler to point to was kind of a breakthrough." -- Principal Firmware Engineer (mobile robotics)
We also spoke with an engineer at a medical device company deploying IEC 62304 Class B software to intensive care units:
"All of the product code that we deploy to end users and customers is currently in Rust. We do EEG analysis with our software and that's being deployed to ICUs, intensive care units, and patient monitors." -- Rust developer at a medical device company
"We changed from this Python component to a Rust component and I think that gave us a 100-fold speed increase." -- Rust developer at a medical device company
These are not proofs of concept. They are shipping systems in regulated environments, going through audits and certification processes. The path is there. The question is how to make it easier for the next teams coming through.
Rust adoption is easiest at QM, and the constraints sharpen fast
At low criticality, teams described a pragmatic approach: use Rust and the crates ecosystem to move quickly, then harden what you ship. One architect at an automotive OEM told us:
"We can use any crate [from crates.io] [..] we have to take care to prepare the software components for production usage." -- Architect at Automotive OEM
But at higher levels, third-party dependencies become difficult to justify. Teams either rewrite, internalize, or strictly constrain what they use. An embedded systems engineer put it bluntly:
"We tend not to use 3rd party dependencies or nursery crates [..] solutions become kludgier as you get lower in the stack." -- Firmware Engineer
Some teams described building escape hatches, abstraction layers designed for future replacement:
"We create an interface that we'd eventually like to have to simplify replacement later on [..] sometimes rewrite, but even if re-using an existing crate we often change APIs, write more tests." -- Team Lead at Automotive Supplier (ASIL D target)
Even teams that do use crates from crates.io described treating that as a temporary accelerator, something to track carefully and remove from critical paths before shipping:
"We use crates mainly for things in the beginning where we need to set up things fast, proof of concept, but we try to track those dependencies very explicitly and for the critical parts of the software try to get rid of them in the long run." -- Team lead at an automotive software company developing middleware in Rust
In aerospace, the "control the whole stack" instinct is even stronger:
"In aerospace there's a notion of we must own all the code ourselves. We must have control of every single line of code." -- Engineering lead in aerospace
This is the first big takeaway: a lot of "Rust in safety-critical" is not just about whether Rust compiles for a target. It is about whether teams can assemble an evidence-friendly software stack and keep it stable over long product lifetimes.
The compiler is doing work teams used to do elsewhere
Many interviewees framed Rust's value in terms of work shifted earlier and made more repeatable by the compiler. This is not just "nice," it changes how much manual review you can realistically afford. Much of what was historically process-based enforcement through coding standards like MISRA C and CERT C becomes a language-level concern in Rust, checked by the compiler rather than external static analysis or manual review.
"Roughly 90% of what we used to check with external tools is built into Rust's compiler." -- Principal Firmware Engineer (mobile robotics)
We heard variations of this from teams dealing with large codebases and varied skill levels:
"We cannot control the skill of developers from end to end. We have to check the code quality. Rust by checking at compile time, or Clippy tools, is very useful for our domain." -- Engineer at a major automaker
Even on smaller teams, the review load matters:
"I usually tend to work on teams between five and eight. Even so, it's too much code. I feel confident moving faster, a certain class of flaws that you aren't worrying about." -- Embedded systems engineer (mobile robotics)
Closely related: people repeatedly highlighted Rust's consistency around error handling:
"Having a single accepted way of handling errors used throughout the ecosystem is something that Rust did completely right." -- Automotive Technical Lead
For teams building products with 15-to-20-year lifetimes and "teams of teams," compiler-enforced invariants scale better than "we will just review harder."
Teams want newer compilers, but also stability they can explain
A common pattern in safety-critical environments is conservative toolchain selection. But engineers pointed out a tension: older toolchains carry their own defect history.
"[..] traditional wisdom is that after something's been around and gone through motions / testing then considered more stable and safer [..] older compilers used tend to have more bugs [and they become] hard to justify" -- Software Engineer at an Automotive supplier
Rust's edition system was described as a real advantage here, especially for incremental migration strategies that are common in automotive programs:
"[The edition system is] golden for automotive, where incremental migration is essential." -- Software Engineer at major Automaker
In practice, "stability" is also about managing the mismatch between what the platform supports and what the ecosystem expects. Teams described pinning Rust versions, then fighting dependency drift:
"We can pin the Rust toolchain, but because almost all crates are implemented for the latest versions, we have to downgrade. It's very time-consuming." -- Engineer at a major automaker
For safety-critical adoption, "stability" is operational. Teams need to answer questions like: What does a Rust upgrade change, and what does it not change? What are the bounds on migration work? How do we demonstrate we have managed upgrade risk?
Target support matters in practical ways
Safety-critical software often runs on long-lived platforms and RTOSs. Even when "support exists," there can be caveats. Teams described friction around targets like QNX, where upstream Rust support exists but with limitations (for example, QNX 8.0 support is currently no_std only).2
This connects to Rust's target tier policy: the policy itself is clear, but regulated teams still need to map "tier" to "what can I responsibly bet on for this platform and this product lifetime."
"I had experiences where all of a sudden I was upgrading the compiler and my toolchain and dependencies didn't work anymore for the Tier 3 target we're using. That's simply not acceptable. If you want to invest in some technology, you want to have a certain reliability." -- Senior software engineer at a major automaker
core is the spine, and it sets expectations
In no_std environments, core becomes the spine of Rust. Teams described it as both rich enough to build real products and small enough to audit.
A lot of Rust's safety leverage lives there: Option and Result, slices, iterators, Cell and RefCell, atomics, MaybeUninit, Pin. But we also heard a consistent shape of gaps: many embedded and safety-critical projects want no_std-friendly building blocks (fixed-size collections, queues) and predictable math primitives, but do not want to rely on "just any" third-party crate at higher integrity levels.
"Most of the math library stuff is not in core, it's in std. Sin, cosine... the workaround for now has been the libm crate. It'd be nice if it was in core." -- Principal Firmware Engineer (mobile robotics)
Async is appealing, but the long-run story is not settled
Some safety-critical-adjacent systems are already heavily asynchronous: daemons, middleware frameworks, event-driven architectures. That makes Rust's async story interesting.
But people also expressed uncertainty about ecosystem lock-in and what it would take to use async in higher-criticality components. One team lead developing middleware told us:
"We're not sure how async will work out in the long-run [in Rust for safety-critical]. [..] A lot of our software is highly asynchronous and a lot of our daemons in the AUTOSAR Adaptive Platform world are basically following a reactor pattern. [..] [C++14] doesn't really support these concepts, so some of this is lack of familiarity." -- Team lead at an automotive software company developing middleware in Rust
And when teams look at async through an ISO 26262 lens, the runtime question shows up immediately:
"If we want to make use of async Rust, of course you need some runtime which is providing this with all the quality artifacts and process artifacts for ISO 26262." -- Team lead at an automotive software company developing middleware in Rust
Async is not "just a language feature" in safety-critical contexts. It pulls in runtime choices, scheduling assumptions, and, at higher integrity levels, the question of what it would mean to certify or qualify the relevant parts of the stack.
Recommendations
Find ways to help the safety-critical community support their own needs. Open source helps those who help themselves. The Ferrocene Language Specification (FLS) shows this working well: it started as an industry effort to create a specification suitable for safety-qualification of the Rust compiler, companies invested in the work, and it now has a sustainable home under the Rust Project with a team actively maintaining it.3
Contrast this with MC/DC coverage support in rustc. Earlier efforts stalled due to lack of sustained engagement from safety-critical companies.4 The technical work was there, but without industry involvement to help define requirements, validate the implementation, and commit to maintaining it, the effort lost momentum. A major concern was that the MC/DC code added maintenance burden to the rest of the coverage infrastructure without a clear owner. Now in 2026, there is renewed interest in doing this the right way: companies are working through the Safety-Critical Rust Consortium to create a Rust Project Goal in 2026 to collaborate with the Rust Project on MC/DC support. The model is shared ownership of requirements, with primary implementation and maintenance done by companies with a vested interest in safety-critical, done in a way that does not impede maintenance of the rest of the coverage code.
The remaining recommendations follow this pattern: the Safety-Critical Rust Consortium can help the community organize requirements and drive work, with the Rust Project providing the deep technical knowledge of Rust Project artifacts needed for successful collaboration. The path works when both sides show up.
Establish ecosystem-wide MSRV conventions. The dependency drift problem is real: teams pin their Rust toolchain for stability, but crates targeting the latest compiler make this difficult to sustain. An LTS release scheme, combined with encouraging libraries to maintain MSRV compatibility with LTS releases, could reduce this friction. This would require coordination between the Rust Project (potentially the release team) and the broader ecosystem, with the Safety-Critical Rust Consortium helping to articulate requirements and adoption patterns.
Turn "target tier policy" into a safety-critical onramp. The friction we heard is not about the policy being unclear, it is about translating "tier" into practical decisions. A short, target-focused readiness checklist would help: Which targets exist? Which ones are no_std only? What is the last known tested OS version? What are the top blockers? The raw ingredients exist in rustc docs, release notes, and issue trackers, but pulling them together in one place would lower the barrier. Clearer, consolidated information also makes it easier for teams who depend on specific targets to contribute to maintaining them. The Safety-Critical Rust Consortium could lead this effort, working with compiler team members and platform maintainers to keep the information accurate.
Document "dependency lifecycle" patterns teams are already using. The QM story is often: use crates early, track carefully, shrink dependencies for higher-criticality parts. The ASIL B+ story is often: avoid third-party crates entirely, or use abstraction layers and plan to replace later. Turning those patterns into a reusable playbook would help new teams make the same moves with less trial and error. This seems like a natural fit for the Safety-Critical Rust Consortium's liaison work.
Define requirements for a safety-case friendly async runtime. Teams adopting async in safety-critical contexts need runtimes with appropriate quality and process artifacts for standards like ISO 26262. Work is already happening in this space.5 The Safety-Critical Rust Consortium could lead the effort to define what "safety-case friendly" means in concrete terms, working with the async working group and libs team on technical feasibility and design.
Treat interop as part of the safety story. Many teams are not going to rewrite their world in Rust. They are going to integrate Rust into existing C and C++ systems and carry that boundary for years. Guidance and tooling to keep interfaces correct, auditable, and in sync would help. The compiler team and lang team could consider how FFI boundaries are surfaced and checked, informed by requirements gathered through the Safety-Critical Rust Consortium.
"We rely very heavily on FFI compatibility between C, C++, and Rust. In a safety-critical space, that's where the difficulty ends up being, generating bindings, finding out what the problem was." -- Embedded systems engineer (mobile robotics)
Conclusion
To sum up the main points in this post:
- Rust is already deployed in production for safety-critical systems, including mobile robotics (IEC 61508 SIL 2) and medical devices (IEC 62304 Class B). The path exists.
- Rust's defaults (memory safety, thread safety, strong typing) map directly to much of what Functional Safety Engineers spend their time preventing. But ecosystem support thins out as you move toward higher-criticality software.
- At low criticality (QM), teams use crates freely and harden later. At higher levels (ASIL B+), third-party dependencies become difficult to justify, and teams rewrite, internalize, or build abstraction layers for future replacement.
- The compiler is doing work that used to require external tools and manual review. Much of what was historically process-based enforcement through standards like MISRA C and CERT C becomes a language-level concern, checked by the compiler. That can scale better than "review harder" for long-lived products with large teams and supports engineers in these domains feeling more secure in the systems they ship.
- Stability is operational: teams need to explain what upgrades change, manage dependency drift, and map target tier policies to their platform reality.
- Async is appealing for middleware and event-driven systems, but the runtime and qualification story is not settled for higher-criticality use.
We make six recommendations: find ways to help the safety-critical community support their own needs, establish ecosystem-wide MSRV conventions, create target-focused readiness checklists, document dependency lifecycle patterns, define requirements for safety-case friendly async runtimes, and treat C/C++ interop as part of the safety story.
Get involved
If you're working in safety-critical Rust, or you want to help make it easier, check out the Rust Foundation's Safety-Critical Rust Consortium and the in-progress Safety-Critical Rust coding guidelines.
Hearing concrete constraints, examples of assessor feedback, and what "evidence" actually looks like in practice is incredibly helpful. The goal is to make Rust's strengths more accessible in environments where correctness and safety are not optional.
-
If you're curious about how rigor scales with cost in ISO 26262, this Feabhas guide gives a good high-level overview. ↩
-
See the QNX target documentation for current status. ↩
-
The FLS team was created under the Rust Project in 2025. The team is now actively maintaining the specification, reviewing changes and keeping the FLS in sync with language evolution. ↩
-
See the MC/DC tracking issue for context. The initial implementation was removed due to maintenance concerns. ↩
-
Eclipse SDV's Eclipse S-CORE project includes an Orchestrator written in Rust for their async runtime, aimed at safety-critical automotive software. ↩
14 Jan 2026 12:00am GMT