finds.dev← search

// the find

tomusdrw/rust-web3

★ 1,510 · Rust · MIT · updated Apr 2026

Ethereum JSON-RPC multi-transport client. Rust implementation of web3 library. ENS address: rust-web3.eth

Rust client for Ethereum JSON-RPC — covers HTTP, WebSocket, and IPC transports with contract ABI encoding, ENS support, and local transaction signing. It's the oldest Rust web3 library and was the default choice before alloy/ethers-rs existed. The README itself tells you to use something else.

The transport abstraction is genuinely clean — you can swap HTTP for WS or batch transport without changing any API call code. Feature flags are well-structured: you can build a minimal binary with only HTTP + rustls and zero OpenSSL. Contract ABI encoding and ENS resolution are built in, not bolted on. The `allow-missing-fields` feature for EVM-compatible chains (Celo, Fantom) shows real-world battle-testing.

The maintainer explicitly recommends migrating away in the README — that's a red flag you can't ignore. No EIP-1559 type 2 transaction support, no `eth_maxPriorityFeePerGas`, no EIP-4844 blobs — the type system is frozen at pre-London Ethereum. Traces API (`traces_*`) is stubbed but unimplemented, so if you're doing anything with transaction tracing you'll hit a wall immediately. The async runtime story is messy — some transports work with tokio, some with async-std, and the migration checklist in the README has been partially checked off for what looks like years.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →