Skip to content

Latest commit

 

History

History
314 lines (263 loc) · 13.6 KB

README.md

File metadata and controls

314 lines (263 loc) · 13.6 KB

awesome-ethereum-rust

Awesome Ethereum Rust repos

Consensus

  • Lighthouse. Ethereum consensus client.
  • ethereum-consensus. A library for interacting with Ethereum consensus objects.
  • beacon-api-client. A client for the Ethereum beacon node APIs.
  • discv5. Rust implementation of Discovery v5.
  • libp2p. The Rust implementation of the libp2p networking stack.

Execution

  • Reth. Ethereum execution client.
  • Akula. Ethereum execution client - deprecated.
  • ranger. Ranger is an ethereum p2p client capable of interacting with peers without a full node.
  • ethrex. Lambda Ethereum Rust Execution client.

EVM - Ethereum Virtual Machine

  • Revm. Rust Ethereum virtual machine (revm) Is EVM written in rust that is focused on speed and simplicity.
  • jitevm. Convert evm bytecode to native machine code and go vroom.
  • evm-disassembler. Rust library to disassemble evm bytecode.
  • create2crunch. A Rust program for finding salts that create gas-efficient Ethereum addresses via CREATE2.
  • balls. A DSL for generating optimal EVM bytecode.
  • evm-inspectors. EVM Execution Hooks for revm.
  • revmc. JIT and AOT compiler for the Ethereum Virtual Machine, built on Revm.
  • evm_mlir. An EVM written with MLIR.
  • pevm. Blazingly fast Parallel EVM in Rust.

Core

  • alloy. Alloy connects applications to blockchains. Transports, Middleware, and Networks for the Alloy project. Rewrite of ethers-rs.
  • alloy core. High-performance, well-tested & documented core libraries for Ethereum.
  • chains. Canonical type definitions for EIP-155 chains.
  • ethers-rs. Complete Ethereum library and wallet implementation.
  • Reth. Modular, contributor-friendly and blazing-fast implementation of the Ethereum protocol.
  • ethers-reth. An ether-rs middleware to access reth's db directly, bypassing JSON-RPC.
  • rust-web3. Ethereum JSON-RPC multi-transport client. Rust implementation of web3 library.
  • ssz-rs. Implementation of Ethereum's ssz.
  • ethereum_ssz. SimpleSerialize (SSZ) implementation optimised for speed and security.
  • ssz_types. List, vector and bitfield types for SSZ.
  • rlp. Fast implementation of Ethereum RLP serialization.
  • enr. This crate contains an implementation of an Ethereum Node Record (ENR) as specified by EIP-778.
  • Rust Crypto. Dozens of popular crates which provide pure Rust implementations of cryptographic algorithms.
  • uint. Rust Uint crate using const-generics.

Light Clients

  • Trin. An Ethereum portal client: a json-rpc server with nearly instant sync, and low CPU & storage usage.
  • Helios. A fast, secure, and portable light client for Ethereum.
  • Ethereum zk light client. Ethereum zk light client leveraging Sphinx (fork of SP1).
  • sp1-helios. On-chain Ethereum light client built with SP1.

Scaling

PBS - Proposer-Builder Separation

  • mev-rs. A gateway to a network of block builders.
  • evangelion. A prototype Ethereum block builder.
  • ethers-flashbots. An Ethers middleware for submitting Flashbots bundles.
  • Artemis. A simple, modular, and fast framework for writing MEV bots.
  • Hindsight. Retroactively estimate Uniswap-ish MEV on Flashbots MEV-Share by simulating backrun-arbitrages.
  • mev-share-rs. Rust client library for Flashbots MEV-share.
  • mev-inspect-rs. Discover historic Miner Extractable Value (MEV) opportunities.
  • suave-andromeda-revm. Andromeda revm execution service - EVM with precompiles used internally by SUAVE for key management and boostrapping kettles.
  • rbuilder. rbuilder is a blazingly fast, state of the art Ethereum MEV-Boost block builder written in Rust.
  • Brontes. A blazingly fast general purpose blockchain analytics engine specialized in systematic mev detection.

Account Abstraction

  • Silius. ERC-4337 (Account Abstraction) - modular and efficient bundler implementation.
  • Rundler. An ERC-4337 Bundler in Rust - high-performance, modular implementation of an ERC-4337 bundler.
  • ethers-userop. An ether-rs middleware to craft user operations.
  • UoIndexer. User operation indexer for ERC-4337.

ZKP and zkEVM

  • Zeth. A "Type 0" zkEVM. Prove validity of Ethereum blocks using RISC Zero's zkVM.
  • zkevm-circuits. Circuits for zkEVM.
  • halo2. Implementation of halo2 zkSNARK proof system.
  • chiquito. DSL for Halo2 circuits.
  • lambdaworks. The library for kids who wanna learn how to do SNARKs and learn other cryptographic stuff too.
  • noir-lang. Noir is a domain specific language for zero knowledge proofs.
  • sp1. A performant, 100% open-source, contributor-friendly zkVM.
  • sp1-reth. A performant, type-1 zkEVM written in Rust & SP1.
  • rsp. A minimal implementation of ZKPs of Ethereum block execution using Reth.

Statelessness

Layer 2

Arbitrum

  • Stylus. Rust Smart Contracts on Arbitrum.

Optimism

  • op-reth. Optimism + Reth.
  • Reth AlphaNet. Reth AlphaNet is a testnet OP Stack-compatible rollup aimed at enabling experimentation of bleeding edge Ethereum Research.
  • Magi. A blazing fast OP Stack rollup client.
  • op-revm. Optimism + Revm.
  • cannon-rs. An alternative implementation of the OP Stack's Cannon, a MIPS emulator for the EVM.
  • optimism-rs. Scaling Ethereum, but this time in rust.
  • op-up. Composable OP Stack Orchestration.
  • durin. A Rust library for creating solvers in the OP Stack's dispute protocol.
  • op-alloy. Optimism alloy types.
  • kona. A suite of no_std components for the OP Stack state transition function.
  • op-succinct. Standalone repo to use Kona & SP1 to verify OP Stack blocks.
  • odyssey. A testnet open-source Layer 2 from the future, co-designed with the developer tools stack.

Polygon

  • plonky2. Plonky2, a SNARK implementation based on techniques from PLONK and FRI.

Scroll

Starknet

  • Starknet Foundry. Blazing fast toolkit for developing Starknet contracts.
  • Madara. Madara is a blazing fast Starknet sequencer, based on substrate.
  • Papyrus. Papyrus is a Starknet full node written.
  • starknet-rs. Complete Starknet library.
  • Cairo. Cairo is the first Turing-complete language for creating provable programs for general computation.
  • cairo-vm. cairo-vm is a Rust implementation of the Cairo VM.
  • starknet_in_rust. A Rust implementation of Starknet execution logic.
  • types-rs. Starknet Rust types.
  • Stone Prover. Stone prover - this repository contains a prover and a verifier for STARKs, and in particular for the CPU AIR underlying the CairoZero programming language.
  • cairo_native. A compiler to convert Cairo's intermediate representation "Sierra" code to MLIR.

zkSync

Taiko

  • raiko. Multi-proofs for Taiko. SNARKS, STARKS and Trusted Execution Enclave.

Fuel

  • Sway. Sway is a language developed for the Fuel blockchain. It is heavily inspired by Rust and aims to bring modern language development and performance to the blockchain ecosystem.
  • fuel-core. Rust full node implementation of the Fuel v2 protocol.
  • fuels-rs. Rust SDK for Fuel.

Aztec

  • aztec-nr. Aztec-nr is a Noir framework for smart contracts on Aztec.

Other

  • zenith-rs. Rust types and services for Zenith (next-gen rollup system).

dApp Development

  • Foundry. Foundry is a blazing fast, portable and modular toolkit for Ethereum application development.
  • Rivet. Developer Wallet & DevTools for Anvil.
  • solar. Blazingly fast, modular and contributor friendly Solidity compiler, written in Rust.

Smart Contracts

  • Heimdall. Heimdall is an advanced EVM smart contract toolkit specializing in bytecode analysis.
  • ethabi. Encode and decode smart contract invocations.
  • Pyrometer. A tool for analyzing the security and parameters of a solidity smart contract.
  • Fe. Emerging smart contract language for the Ethereum blockchain.
  • svm-rs. Solidity-Compiler Version Manager.
  • huff-rs. A low-level assembly language for the Ethereum Virtual Machine built in blazing-fast pure rust.

Data Analytics

  • cryo. cryo is the easiest way to extract blockchain data to parquet, csv, json, or python dataframes.

Misc

  • block-explorers. Bindings for the etherscan API and other block explorers.