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