// the find
tomusdrw/rust-web3
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.