@@ -107,6 +107,29 @@ memory model, and *any future memory model*. We ensure this by:
107
107
[ Miri ] : https://github.com/rust-lang/miri
108
108
[ Kani ] : https://github.com/model-checking/kani
109
109
110
+ ## Relationship to Project Safe Transmute
111
+
112
+ [ Project Safe Transmute] is an official initiative of the Rust Project to
113
+ develop language-level support for safer transmutation. The Project consults
114
+ with crates like zerocopy to identify aspects of safer transmutation that
115
+ would benefit from compiler support, and has developed an [ experimental,
116
+ compiler-supported analysis] [ mcp-transmutability ] of when a value of one
117
+ type is soundly transmutable into another. Once this functionality is
118
+ sufficiently mature, zerocopy intends to replace its internal
119
+ transmutability analysis with the compiler-supported one. This change will
120
+ likely be an implementation detail that is invisible to zerocopy's users.
121
+
122
+ However, Project Safe Transmute will not replace the need for most of
123
+ zerocopy's higher-level abstractions over transmutability. The experimental
124
+ compiler analysis is a tool for checking the soundness of ` unsafe ` code—not
125
+ a tool to avoid writing ` unsafe ` code altogether. For the foreseeable
126
+ future, crates like zerocopy will still be required in order to provide
127
+ higher-level abstractions on top of the building block provided by Project
128
+ Safe Transmute.
129
+
130
+ [ Project Safe Transmute ] : https://rust-lang.github.io/rfcs/2835-project-safe-transmute.html
131
+ [ mcp-transmutability ] : https://github.com/rust-lang/compiler-team/issues/411
132
+
110
133
## Disclaimer
111
134
112
135
Disclaimer: Zerocopy is not an officially supported Google product.
0 commit comments