# Rewriting Systems Software in Rust Insights and Lessons > [! note]- > The content of this page is generated by audio/video transcription and text transformation from the content and links of this source. Source: [https://fosdem.org/2025/schedule/event/fosdem-2025-5088-lessons-from-rewriting-systems-software-in-rust/](https://fosdem.org/2025/schedule/event/fosdem-2025-5088-lessons-from-rewriting-systems-software-in-rust/) <video src="https://video.fosdem.org/2025/ub2252a/fosdem-2025-5088-lessons-from-rewriting-systems-software-in-rust.av1.webm" controls></video> ## Summary & Highlights: This session at FOSDEM 2025 discusses the journey and lessons learned from rewriting systems software in Rust. Ruben Nijveld shares insights from projects like ntpd-rs, zlib-rs, and sudo-rs, highlighting the importance of memory safety, security, and performance. **Introduction to Rust in Systems Software** The session starts by addressing the common perception that rewriting software in Rust is primarily about achieving memory safety. However, Ruben emphasizes that successful implementation involves addressing various factors beyond memory safety. **Project Highlights and Challenges** Ruben discusses key projects such as ntpd-rs and sudo-rs, funded by organizations like the NLNet Foundation and the Sovereign Tech Agency. He highlights the importance of selecting projects with a history of security issues and unstructured codebases. **Focus on Security, Performance, and Stability** The session explores how Rust's features can enhance software security, performance, and stability. Ruben discusses the balance between using unsafe code for performance and maintaining security, as well as the importance of stable APIs. **Building Trust and Community** Ruben emphasizes the need to build trust with users, contributors, and maintainers. He discusses the importance of documentation, managing dependencies, and ensuring wide distribution to maximize impact. **Conclusion and Future Directions** The session concludes with a call to action for developers to embrace Rust's potential while focusing on unique selling points and community building. Ruben encourages collaboration and sharing of best practices to improve the software ecosystem. ## Importance for an eco-social transformation The session highlights the importance of secure and efficient software for eco-social transformation. Rust's emphasis on memory safety and performance can lead to more reliable and sustainable systems. Eco-social designers can leverage Rust's tools for developing open infrastructure software that serves the public interest. Challenges include managing dependencies and ensuring broad adoption across diverse ecosystems. Collaboration and community engagement are crucial for overcoming technical and social hurdles. ## Slides: | | | | --- | --- | | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_001.jpg\|300]] | The first slide introduces the session's theme, emphasizing that memory safety alone is not sufficient for effective software development. Ruben Nijveld will explore lessons from rewriting systems software in Rust, highlighting the broader implications and benefits of using Rust in various projects. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_002.jpg\|300]] | This slide provides a brief background on Ruben Nijveld, mentioning his work at Tweede Golf since 2011 and his experience with Rust starting in 2013. It notes his first commercial use of Rust in 2017 with MapServer bindings, setting the stage for his expertise in the field. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_003.jpg\|300]] | The slide outlines the timeline of the Trifecta Tech Foundation's projects, starting with a grant from the NLNet Foundation in January 2022 for a PTP prototype. It details subsequent collaborations with Prossimo (ISRG) for NTP and Sudo implementations in Rust, leading to a significant grant from the Sovereign Tech Agency in August 2023 for the Pendulum project. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_004.jpg\|300]] | This slide lists current projects of the Trifecta Tech Foundation, including time synchronization with Pendulum, privilege boundary with sudo-rs, data compression with zlib-rs and bzip2-rs, and smart grid protocols with openleadr-rs. It also mentions the education initiative teach-rs and efforts to make Rust faster than C, emphasizing the foundation's focus on open infrastructure software for the public interest. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_005.jpg\|300]] | The slide defines system software as low-level software designed to provide a platform for other software. It highlights the characteristics of system software, including low overhead, high performance, and the implementation of protocols, algorithms, and formats, setting the context for the session's focus on rewriting such software in Rust. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_006.jpg\|300]] | This slide explains the criteria for selecting projects, emphasizing the importance of keeping work interesting and engaging for the long term. It suggests that projects should be chosen based on their potential to maintain interest and relevance over time. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_007.jpg\|300]] | The slide challenges the notion of selecting projects solely based on the presence of buffer overflow issues. It suggests that this approach is not sufficient and emphasizes the need to consider other factors when choosing projects for rewriting in Rust. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_008.jpg\|300]] | This slide advises against rewriting every project in Rust, noting potential negative impacts such as community division and user dissatisfaction. It encourages focusing on positive outcomes and highlights the value of hobby projects for exploring new ideas. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_009.jpg\|300]] | The slide discusses the selection of projects with vulnerabilities, such as those with few developers but many users, a history of security issues, and unstructured codebases. It emphasizes the importance of addressing these challenges beyond the Rust ecosystem. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_010.jpg\|300]] | This slide encourages experimentation and learning in the problem space before committing to a project. It suggests starting with hobby projects and engaging with competing implementations, while being mindful of licensing considerations. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_011.jpg\|300]] | The slide emphasizes the importance of identifying a unique selling point for new implementations beyond Rust's memory and type safety. It notes that users care about different aspects, and developers should focus on what differentiates their projects. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_012.jpg\|300]] | This slide suggests focusing on security improvements in new implementations, such as reducing the attack surface in sudo-rs and implementing stricter defaults in ntpd-rs. It encourages thinking beyond memory and type safety to enhance security. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_013.jpg\|300]] | The slide discusses the potential for performance improvements in new implementations, including the use of unsafe code for better performance. It emphasizes the need to balance security, usability, and performance, and to validate claims with benchmarks. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_014.jpg\|300]] | This slide highlights the importance of stability in new implementations, addressing issues like memory leaks and ensuring stable APIs. It mentions efforts in ntpd-rs and zlib-rs to provide stable and reliable interfaces. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_015.jpg\|300]] | The slide encourages developers to focus on their strengths and contribute to the broader ecosystem by documenting successes and challenges. It emphasizes the value of collaboration and helping other implementations improve. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_016.jpg\|300]] | This slide outlines the iterative process of refining a project, focusing on code, unique selling points, documentation, dependencies, and distribution. It advises taking the time to address these aspects thoroughly. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_017.jpg\|300]] | The slide highlights the importance of comprehensive API documentation in Rust projects, including the use of tools to ensure all public interfaces are well-documented and tested with examples. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_018.jpg\|300]] | This slide emphasizes that API documentation alone is insufficient for users. It suggests providing examples, tutorials, high-level guides, and reference guides to help users understand and effectively use the software. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_019.jpg\|300]] | The slide discusses the role of dependencies in solving problems within new projects. It encourages using the wide range of libraries available in the Rust ecosystem to address challenges efficiently. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_020.jpg\|300]] | This slide highlights the risks associated with dependencies, including burden and trust risks. It advises carefully considering the alignment of a dependency's goals with the project's needs and managing these risks effectively. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_021.jpg\|300]] | The slide emphasizes the importance of verifying dependencies, using tools like CargoVet to audit and share the review load. It notes that dependencies are part of the distribution strategy and should be managed carefully. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_022.jpg\|300]] | This slide discusses the implications of targeting Linux distributions, particularly Debian, which packages dependencies individually. It highlights the need to adapt to the distribution's packaging practices to reach a broad user base. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_023.jpg\|300]] | The slide advises against relying solely on crates.io for distribution, noting that users may not be Rust users. It emphasizes the importance of making software easy to use and collaborating with Linux distributions and downstream maintainers. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_024.jpg\|300]] | This slide addresses the challenges of naming crates, suggesting that renaming is always an option. It encourages direct communication with crate owners and highlights the importance of having a working project to show. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_025.jpg\|300]] | The slide emphasizes the importance of building trust with users, contributors, and maintainers. It advises establishing a reliable security issue handling process and demonstrating reliability as a partner. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_026.jpg\|300]] | This slide summarizes the achievements of the project, including selecting the right project, focusing on unique selling points, creating high-quality software and documentation, managing dependencies, and building trust. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_027.jpg\|300]] | The slide humorously encourages the audience to download the software, suggesting confidence in the project's quality and readiness for use. | ![[FOSDEM 2025/assets/Lessons-from-rewriting-systems-software-in-Rust/preview_028.jpg\|300]] | The final slide thanks the audience and provides contact information for Ruben Nijveld, along with links to relevant projects and organizations. ## Links [Slides](https://fosdem.org/2025/events/attachments/fosdem-2025-5088-lessons-from-rewriting-systems-software-in-rust/slides/238136/slides_oReXYII.pdf) [Video recording (AV1/WebM)](https://video.fosdem.org/2025/ub2252a/fosdem-2025-5088-lessons-from-rewriting-systems-software-in-rust.av1.webm) [Video recording (MP4)](https://video.fosdem.org/2025/ub2252a/fosdem-2025-5088-lessons-from-rewriting-systems-software-in-rust.av1.mp4)