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. |