Ethereum Virtual Machine
Built in Zig
A high-performance, embeddable EVM implementation with 96+ opcodes, parallel transaction execution, and native bindings for Python, Rust, JavaScript, and C.
Quick Start
$ git clone https://github.com/cryptuon/zig-evm.git
$ cd zig-evm
$ zig build run
# EVM initialized with 96 opcodes
# Gas used: 21000
# Execution complete Built for Performance
Everything you need to execute, analyze, and debug EVM bytecode at maximum speed.
96+ Opcodes
Comprehensive EVM instruction set including arithmetic, stack, memory, flow control, and environmental opcodes.
Parallel Execution
Wave-based parallel transaction processing with 5-6x throughput improvement and work-stealing thread pools.
FFI Bindings
Native bindings for Python, Rust, JavaScript, and C. Embed the EVM in any language ecosystem.
Accurate Gas Metering
Realistic gas costs matching Ethereum specifications with per-opcode consumption and out-of-gas protection.
Interactive Playground
Browser-based bytecode editor with real-time disassembly, stack visualization, and execution tracing.
Built with Zig
Zero-overhead abstractions, compile-time evaluation, and manual memory management for maximum performance.
Performance Benchmarks
Measured on standard hardware. Parallel execution scales linearly up to 8 threads.
| Operation | Ops/sec | Avg Latency |
|---|---|---|
| Simple Transfer | 45,000 | 22µs |
| Token Transfer | 38,000 | 26µs |
| Complex Contract | 12,000 | 83µs |
| Parallel (8 threads) | 250,000 | 4µs |
Use From Any Language
Native FFI bindings let you embed Zig EVM in your existing projects.
Zig
const evm = EVM.init(allocator);
evm.execute(bytecode); Python
from zigevm import EVM
evm = EVM()
evm.execute(bytecode) Rust
let evm = ZigEVM::new();
evm.execute(&bytecode)?; JavaScript
const { EVM } = require('zigevm');
const evm = new EVM();
evm.execute(code); Learn EVM Development
Deep dives into EVM internals, Zig systems programming, parallel execution, and blockchain infrastructure.