UCG WG - Rust's Unsafe Code Guidelines Working Group
The goal of the UCG WG is to produce the Unsafe Code Guidelines Reference: a "guide" for writing unsafe code that "recommends" what kinds of things unsafe code can and cannot do, and that documents which guarantees unsafe code may rely on. It is largely a work-in-progress right now.
Unless we state otherwise, the information in the guide is mostly a "recommendation" and still subject to change. The main goal for the WG in 2019 is to RFC parts of the guide into the language specification, and move those parts into the Rust Language Reference proper.
note: the instructions to build the UCG reference book are in the
A more complete description of our process is available in the
- active discussion area: At any given time, the UCG working group is focused on one particular area of discussion. The current area is Validity Invariants -- read that link for more background and information. You can find the active discussion threads here.
- communication channels: Most of the discussion takes place here in GitHub
issues. Many of us do also hang out on Zulip's
wg-unsafe-code-guidelinesstream. There is rust-lang org team called
WG-unsafe-code-guidelinesthat is commonly cc'd when curious situations arise. Send a private message to @nikomatsakis on internals or Zulip if you would like to be added (note: membership does not imply any particular decision-making power).
- meetings: Every Thursday at 12:15 UTC-4 (16:15 UTC), we hold a brief non-technical meeting on Zulip to triage issues, PRs, assign work, etc. Everybody is welcome to attend.
Ideas for future "areas of discussion" are represented as issues labeled with the "proposed discussion topic" label. Feel free to open more such issues if you have a question that doesn't match any of the existing issues!
The Rustonomicon is a draft document discussing unsafe code. It is intended to be brought into agreement with the content here. It represents an organized effort to explain how to write Rust code, rather than a reference.
The nikomatsakis/rust-memory-model was a previous effort and contains a lot of good links and information.