A high-performance Rust implementation of the Ethereum Virtual Machine (EVM) used by major clients, tooling, and Layer 2 solutions.
Revm is a Rust implementation of the Ethereum Virtual Machine (EVM). It provides the core engine for executing Ethereum smart contracts and transactions, serving as a critical building block for clients, tooling, and Layer 2 networks. It solves the need for a high-performance, reliable, and extensible EVM written in a systems programming language.
Blockchain engineers and teams building Ethereum clients, developer tools (like Foundry), Layer 2 rollups, or zero-knowledge virtual machines (zkVMs) that require a robust EVM component.
Developers choose Revm for its proven performance, stability, and widespread adoption across the Ethereum ecosystem. Its dual API design offers both simplicity for standard execution and deep extensibility for building custom EVM variants, making it uniquely versatile.
Rust implementation of the Ethereum Virtual Machine.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Revm is optimized for speed and stability, powering major Ethereum clients like Reth and tooling like Foundry, ensuring reliable transaction processing in resource-intensive environments.
Offers a simple Execution API for standard use and a Framework API for building custom EVM variants, as demonstrated in op-revm for Layer 2 networks, allowing both ease of use and deep extensibility.
Widely adopted by Ethereum infrastructure, including clients, developer tools, and Layer 2s like Optimism and Base, providing proven compatibility and reducing integration risks.
Includes inspectors for tracing and debugging transaction execution, essential for development and analysis, as leveraged by Foundry for its testing and debugging features.
The Framework API for extending EVM logic is acknowledged as complex in the documentation, requiring significant Rust and EVM expertise to implement custom variants, which can slow down development.
As a Rust library, Revm necessitates Rust knowledge and toolchain, making it inaccessible for teams using other languages without FFI bindings or additional integration overhead.
Information is spread across a book, code docs, and GitHub links, which can be challenging for newcomers to navigate compared to centralized, beginner-friendly documentation.