# Foundry Seminar join the dev telegram: https://t.me/foundry_rs join the support telegram: https://t.me/foundry_support ## Agenda 1. wtf is foundry and y it's dope 2. quick setup 3. writing tests 4. fuzzing in foundry & why it's valuable 5. using traces 6. using the debugger 7. future of foundry 8. Q&A ## Intro ### wtf is foundry "Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust." Has 2 core utilities: 1. `forge` 2. `cast` `forge` is primarily what we will cover today, it is an Ethereum smart contract testing framework, like Truffle, Hardhat, and dapptools. `cast` is a collection of utilities for interacting with smart contracts, endcoding, decoding, and understanding EVM ecosystem semantics. ### why foundry is dope Think about any language you have ever written -- did you write your tests in another language? How can you expect to master a language when you spend sometimes greater than half your development time writing in another language? This is one of the core problems foundry aims to solve: write your tests in the same language as your production software. Context switching also reduces productivity; being able to stay in solidity can speed up development. Speaking of speed, `foundry` is _fast_. _Really freakin' fast_. The benchmarks below are even a little outdated (we got faster :)). | Project | Forge | DappTools | Speedup | | --------------------------------------------------- | ----- | --------- | ------- | | [guni-lev](https://github.com/hexonaut/guni-lev/) | 28.6s | 2m36s | 5.45x | | [solmate](https://github.com/Rari-Capital/solmate/) | 6s | 46s | 7.66x | | [geb](https://github.com/reflexer-labs/geb) | 11s | 40s | 3.63x | | [vaults](https://github.com/rari-capital/vaults) | 1.4s | 5.5s | 3.9x | And it is only getting faster. A new evm backend is being integrated right now and early benchmarks have it close to a 50% speedup. #### cool features 1. FAST 2. mainnet forking 3. cheatcodes 4. debugger 5. traces 6. fuzzing 7. multi compiler version support LETS HOP IN! Repo will be available after the talk. #### Install & Setup `curl -L https://foundry.paradigm.xyz | bash` `foundryup` `forge init foundry_seminar` Feel free to follow along :)