ZK Rust Language Features
This table tracks feature availability, including feature comparison with the main Rust project, and some ZkRust specific features mixed in. This is not a roadmap.
Legend: ✅ Supported, ✨ Supported and distinct from Rust, ❌ Unsupported
| Feature | Status | Likelyhood of implementation |
|---|---|---|
| For-in-range | ✅ | |
| Public Integers and booleans | ✅ | |
SbiN (Secret Binary Integers) |
✨ | |
| Structs with public | ✅ | |
| Structs with secret | ✨ | |
| Tuple Types | ✅ | |
| Type generics | ✅ | |
continue, break |
✅ | |
| Type aliases | ✅ | |
Generalized for-in-iterator |
✅ | |
| Assigning to struct fields | ✅ | |
fn Function declaration |
✅ | |
| Arrays | ✅ | |
| General derive traits | ❌ | Likely |
enum |
❌ | Likely |
const Constant items |
❌ | Possibly |
| Closure expressions | ❌ | Possibly |
| Constant generics | ❌ | Possibly |
| Constant evaluation | ❌ | Possibly |
| Full iterator interface | ❌ | Possibly |
| Function references and types | ❌ | Possibly |
| Pattern matching and Destructuring | ❌ | Possibly |
| String Type | ❌ | Possibly |
| Compound assignment expressions | ❌ | Possibly |
| Question mark operator | ❌ | Possibly |
match |
❌ | Possibly |
union |
❌ | Possibly |
f32, f64 Floats |
❌ | Unlikely |
| Associated items | ❌ | Unlikely |
extern crate |
❌ | Unlikely |
| Full borrow checking | ❌ | Unlikely |
| General macro support | ❌ | Unlikely |
| Generic Associated Types | ❌ | Unlikely |
| Modules | ❌ | Unlikely |
| Trait and impl | ❌ | Unlikely |
dyn Trait objects |
❌ | Unlikely |
panic! |
❌ | Unlikely |
| Lifetimes | ❌ | Unlikely, due to limited utility |
| References and Pointers | ❌ | Unlikely, due to limited utility |
loop |
❌ | Unlikely, due to gas concerns. |
while |
❌ | Unlikely, due to gas concerns. |
| Bitshift with two secrets | ❌ | Unlikely, due to performance concerns. |
| Array indexing with secret-shared index | ❌ | Unlikely, due to performance concerns. |
| Async | ❌ | Incompatible with current archtecture. |
| Inline Assembly | ❌ | Incompatible with current archtecture. |
| Operating System Access | ❌ | Incompatible with current archtecture. |
print! and other IO |
❌ | Incompatible with current archtecture. |
| Threading | ❌ | Incompatible with current archtecture. |
unsafe |
❌ | Incompatible with current archtecture. |