Web3 & DApp Development Fundamentals · Leçon

Foundry ou Hardhat

Outils fondés sur Rust

Leçon 1 sur 413 étapes

Foundry ou Hardhat est une leçon Web3 & DApp Development Fundamentals gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Web3 & DApp Development Fundamentals, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Web3 & DApp Development Fundamentals comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

What Is Foundry

Foundry is a fast, Rust-based toolkit for Ethereum development. It lets you write tests, scripts, and deployments entirely in Solidity, with no JavaScript layer required.

Its speed and Solidity-native testing have made it the dominant choice for many professional smart contract teams.

The Four Tools

Foundry ships as four command-line tools:

  • forge — build, test, and deploy contracts
  • cast — interact with chains and contracts from the CLI
  • anvil — a local development blockchain
  • chisel — a Solidity REPL

Together they cover the full development lifecycle.

What Is Hardhat

Hardhat is a JavaScript and TypeScript based development environment. Tests and scripts are written in JS/TS using libraries like ethers.js or viem, and it has a rich plugin ecosystem.

It is well suited to teams comfortable in the Node.js world and projects with heavy off-chain tooling.

Language for Tests

The biggest difference is the testing language:

  • Foundry — tests are Solidity contracts; no context switch from your contract code
  • Hardhat — tests are JavaScript/TypeScript using a chai-style assertion library

Solidity tests give Foundry direct access to internal state and low-level cheatcodes.

// Foundry test (Solidity)
function testIncrement() public {
    counter.increment();
    assertEq(counter.number(), 1);
}

Speed

Foundry's Rust implementation and native EVM make it dramatically faster than Hardhat's Node-based runner, often by an order of magnitude on large suites.

Fast feedback loops matter: when tests run in milliseconds, developers run them constantly, catching bugs earlier.

Project Layout

A Foundry project has a conventional structure:

  • src/ — your contracts
  • test/ — Solidity test files (suffix .t.sol)
  • script/ — deployment scripts (suffix .s.sol)
  • lib/ — dependencies installed as git submodules
  • foundry.toml — configuration
myproject/
  src/Counter.sol
  test/Counter.t.sol
  script/Deploy.s.sol
  lib/forge-std/
  foundry.toml

Dependency Management

Foundry installs dependencies as git submodules via forge install, with import remappings instead of an npm registry. Hardhat uses npm packages.

Submodules keep exact source pinned in your repo, while npm offers familiar versioning and a vast package ecosystem.

$ forge install OpenZeppelin/openzeppelin-contracts
# adds to lib/ and updates remappings

Cheatcodes

Foundry's killer feature is cheatcodes: special calls via the vm object that manipulate EVM state in tests. You can warp time, set balances, impersonate addresses, and expect reverts.

Hardhat offers similar capabilities through helper plugins, but Foundry's are built in and accessible directly from Solidity.

vm.warp(block.timestamp + 1 days);
vm.prank(alice);
vm.expectRevert("not owner");

Scripting and Deployment

Foundry deployments are Solidity scripts run with forge script, using vm.startBroadcast() to send real transactions. Hardhat deployments are JS scripts run with hardhat run.

Solidity scripting keeps deployment logic in the same language as the contracts, reducing context switching.

function run() external {
    vm.startBroadcast();
    new Counter();
    vm.stopBroadcast();
}

Choosing Between Them

There is no universal winner:

  • Choose Foundry for speed, fuzzing, and Solidity-native testing
  • Choose Hardhat for rich JS/TS tooling and a large plugin ecosystem

Many teams use both: Foundry for unit and fuzz tests, Hardhat for complex deployment and integration tasks. They can coexist in one repo.

Installing Foundry

Foundry installs via foundryup, a version manager that fetches the latest binaries. Once installed, forge init scaffolds a new project ready to build and test.

$ curl -L https://foundry.paradigm.xyz | bash
$ foundryup
$ forge init my_project

Quick Check

In what language are Foundry tests written?

Recap

You compared the two main toolkits:

  • Foundry is Rust-based with Solidity tests; Hardhat is Node-based with JS/TS tests
  • Foundry tools: forge, cast, anvil, chisel
  • Foundry is faster and has built-in cheatcodes and fuzzing
  • Dependencies via git submodules vs npm

Next we dive into writing tests with forge.

Gratuit pour commencer

Apprends Web3 & DApp Development Fundamentals avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
29
Leçons
105

Questions Fréquemment Posées

La leçon « Foundry ou Hardhat » est-elle gratuite ?

Oui — le texte complet de « Foundry ou Hardhat » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Web3 & DApp Development Fundamentals, passe à CoddyKit PRO. Le cours Web3 & DApp Development Fundamentals comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Foundry ou Hardhat » ?

Outils fondés sur Rust Tu pratiques Web3 & DApp Development Fundamentals avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Web3 & DApp Development Fundamentals ?

Aucune expérience préalable n'est requise. Web3 & DApp Development Fundamentals sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Foundry ou Hardhat » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Web3 & DApp Development Fundamentals ?

Oui. Chaque leçon Web3 & DApp Development Fundamentals inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Foundry ou Hardhat
  2. Tests avec forge
  3. Fuzzing et invariants
  4. cast et anvil
← Retour à Web3 & DApp Development Fundamentals