Foundry is a set of command-line tools for Ethereum development built in Rust. It started as a Paradigm project in late 2021 when they got tired of Hardhat being slow and wanted to write tests in Solidity instead of JavaScript.
The core pitch is simple: why learn JavaScript testing libraries when you already know Solidity? Instead of wrestling with Mocha, Chai, and ethers.js, you write your tests in the same language as your contracts. No more expect(await contract.getValue()).to.equal(42)
bullshit - just assertEq(contract.getValue(), 42)
.
It's grown to 8.6k+ GitHub stars with hundreds of active contributors, which is pretty good for a tool that makes you throw out your existing JavaScript test suite.
The Four Tools
Forge is the main compiler and test runner. It's fast because it's written in Rust and can compile multiple contracts in parallel. Unlike Hardhat, it doesn't recompile everything when you change one file - it actually does incremental compilation properly.
Cast is for interacting with deployed contracts from the command line. Think of it as a command-line wallet that can call contract functions, decode transaction data, and query blockchain state. Way more powerful than web3 scripts for debugging production issues.
Anvil is the local development node. It starts instantly (unlike Ganache) and can fork mainnet state without eating all your RAM. You can impersonate accounts, manipulate block timestamps, and generally mess with the blockchain in ways that help with testing.
Chisel is a Solidity REPL where you can test code snippets interactively. It's actually useful for figuring out how Solidity works without deploying contracts just to test simple expressions.
Installation Actually Works
Installation is refreshingly simple - no Node.js, no Python, no virtual environments:
curl -L https://foundry.paradigm.xyz | bash
foundryup
That's it. It downloads precompiled binaries for all four tools. The whole thing is under 100MB and doesn't conflict with anything else on your system. foundryup
manages versions automatically, so you can switch between releases without breaking your projects.
Who Actually Uses This?
Major projects like OpenZeppelin, Uniswap, and Solmate have migrated from Hardhat. The migration isn't trivial - you have to rewrite all your tests from JavaScript to Solidity - but teams do it anyway because the speed gains are worth the long-term productivity improvements.
Documentation is solid in the Foundry Book, and there's active community support on Telegram and GitHub discussions. The project maintains regular releases with bug fixes and new features, including improved EIP support and enhanced debugging tools.