Memory safety bugs remain one of the most persistent sources of security vulnerabilities in large systems software, according to studies across the industry related to codebases written in memory-unsafe languages. In open-source software, these problems carry a unique cost: they place long-term maintenance burdens on volunteer maintainers and small communities, who must patch and coordinate responses often without dedicated security teams.
Rust addresses memory safety by design through its ownership model, borrowing rules, and type system, that helps ensure that entire classes of common production errors like use-after-free, buffer overflows, data races, and null pointer dereferences are caught at compile time. In FOSS ecosystems, this “secure by construction” approach can significantly reduce the burden of vulnerability handling and patch coordination, improving long-term sustainability. Through my experience building a custom Bash-like shell in Rust, I found that Rust shifts much of the debugging effort from runtime to compile time. While the borrow checker required more deliberate thinking about ownership and shared state, it encouraged clearer program design and caught many potential bugs at compile time, reducing the need for extensive runtime debugging. However, adopting Rust introduces a real “Rust tax” for open-source projects. This could be in the form of a steep learning curve for new contributors, increased onboarding friction, ecosystem gaps in certain domains, and social resistance within established communities.
Referring to real-world FOSS adoption patterns, I will talk about selective and complete Rust integrations. In projects like Redox, Rust is used across the entire stack to achieve uniform safety guarantees whereas Linux is gradually introducing Rust in isolated kernel components such as drivers, while retaining C for most of the core system. These examples highlight how Rust delivers significant value in security-sensitive, concurrency-heavy components such as kernels. However, for large legacy codebases or rapidly evolving application layers, selective adoption often provides a more practical and socially sustainable path. I will explain where Rust provides the greatest value, where its adoption costs outweigh its benefits, and how FOSS communities can make informed decisions that balance security, maintainability, contributor accessibility, and long-term sustainability.