English

Fearless Unsafe. A More User-friendly Document for Unsafe Rust Programming Base on Refined Safety Properties

Software Engineering 2024-12-20 v2

Abstract

Rust, a popular systems-level programming language, has garnered widespread attention due to its features of achieving run-time efficiency and memory safety. With an increasing number of real-world projects adopting Rust, understanding how to assist programmers in correctly writing unsafe code poses a significant challenge. Based on our observations, the current standard library has many unsafe APIs, but their descriptions are not uniform, complete, and intuitive, especially in describing safety requirements. Therefore, we advocate establishing a systematic category of safety requirements for revising those documents. In this paper, we extended and refined our study in ICSE 2024. We defined a category of Safety Properties (22 items in total) that learned from the documents of unsafe APIs in the standard library. Then, we labeled all public unsafe APIs (438 in total) and analyzed their correlations. Based on the safety properties, we reorganized all the unsafe documents in the standard library and designed a consultation plugin into rust-analyzer as a complementary tool to assist Rust developers in writing unsafe code. To validate the practical significance, we categorized the root causes of all Rust CVEs up to 2024-01-31 (419 in total) into safety properties and further counted the real-world usage of unsafe APIs in the crates.io ecosystem.

Keywords

Cite

@article{arxiv.2412.06251,
  title  = {Fearless Unsafe. A More User-friendly Document for Unsafe Rust Programming Base on Refined Safety Properties},
  author = {Mohan Cui and Penglei Mao and Shuran Sun and Yangfan Zhou and Hui Xu},
  journal= {arXiv preprint arXiv:2412.06251},
  year   = {2024}
}

Comments

arXiv admin note: substantial text overlap with arXiv:2308.04785

R2 v1 2026-06-28T20:27:31.417Z