Open Source · MIT Licensed

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

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