58 releases (32 breaking)

1.0.0-alpha.2 Dec 6, 2023
1.0.0-alpha.1 Nov 25, 2023
0.41.1 Dec 17, 2023
0.41.0 Nov 1, 2023
0.7.1 Sep 14, 2017

#1353 in Magic Beans

Download history 5149/week @ 2023-12-16 2593/week @ 2023-12-23 2908/week @ 2023-12-30 4412/week @ 2024-01-06 4791/week @ 2024-01-13 5182/week @ 2024-01-20 3573/week @ 2024-01-27 3939/week @ 2024-02-03 4057/week @ 2024-02-10 5269/week @ 2024-02-17 4165/week @ 2024-02-24 4162/week @ 2024-03-02 4352/week @ 2024-03-09 4326/week @ 2024-03-16 4199/week @ 2024-03-23 3114/week @ 2024-03-30

16,472 downloads per month
Used in 45 crates (29 directly)

Apache-2.0

220KB
7K SLoC

Rust EVM

Build Status License

Rust EVM, also known as SputnikVM, is a flexible Ethereum Virtual Machine interpreter that can be easily customized.

Status

The Rust EVM project has a long history dating back to the initial implementation in 2017 (when it was called SputnikVM). It has went through multiple rewrites over the years to accomodate for different requirements, when we successfully tested one integrating Geth to sync the mainnet.

The current rewrite is used in production for the Frontier project (the Ethereum-compatibility layer for Polkadot). However, we have not yet fully tested it against Ethereum mainnet. If you have such requirements, PR for fixes are welcomed.

Features

  • Standalone - can be launched as an independent process or integrated into other apps.
  • Flexible - can be customized and extended to support additional opcodes, additional precompiles, different gasometers or other more exotic use cases.
  • Portable - support no_std, and can be used in different environments like in WebAssembly.
  • Fast - we of course try to be fast!
  • written in Rust, can be used as a binary, cargo crate or shared library.

Dependencies

Rust EVM requires at least rustc 1.75.

Documentation

License

Apache 2.0

Dependencies

~1.5–2.6MB
~36K SLoC