finds.dev← search

// the find

foundry-rs/foundry

★ 10,404 · Rust · Apache-2.0 · updated Jun 2026

Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.

Foundry is the de facto standard Rust-based toolchain for Ethereum/Solidity development, replacing Hardhat/Truffle for a large portion of the ecosystem. It includes Forge (test/build/deploy), Cast (CLI chain interaction), Anvil (local node), and Chisel (Solidity REPL). If you're writing Solidity contracts in 2024+, you're probably already using this or should be.

- Forge's test runner executes Solidity tests natively in the EVM with no JavaScript layer, which means test suites that took minutes in Hardhat run in seconds. The fuzzing and invariant testing built directly into the test framework is genuinely useful and catches bugs property-based testing in other languages would miss.

- Anvil as a local node is fast and has solid fork-mode support with state caching, making mainnet fork tests practical in CI without hammering RPC rate limits every run.

- Cheatcodes are well-designed: vm.prank, vm.expectRevert, vm.mockCall, storage manipulation etc. are all available in pure Solidity test files with no test-framework-specific imports beyond forge-std, keeping tests readable.

- The codebase is well-structured with clear crate separation (anvil, cast, forge, cheatcodes, chisel each isolated), good CI with flaky test detection, and the alloy migration cleaned up a lot of the older ethers-rs debt.

- The 'tempo' feature scattered across cast, anvil, cheatcodes, and the backend appears to be an in-development/experimental feature with minimal public documentation, and adopters will hit confusing references to it without understanding what it does or whether it's stable.

- Anvil's EVM fidelity diverges from geth in edge cases, particularly around gas accounting and precompile behavior on non-mainnet chains. This has caused real production bugs where tests pass on Anvil but fail on-chain.

- The fuzzer is mutation-based rather than coverage-guided like Echidna/Medusa, so it misses deeper state-space paths. For serious security work, you still need to bring in a dedicated fuzzing tool alongside Forge.

- Windows support is still second-class — some features work, but the install story is rough and several CI paths explicitly skip Windows. Teams on Windows dev machines will hit friction.

View on GitHub → Homepage ↗

// 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 →