Foundry เทียบกับ Hardhat
เครื่องมือที่สร้างด้วย Rust
Foundry เทียบกับ Hardhat เป็นบทเรียน Web3 & DApp Development Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Web3 & DApp Development Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Web3 & DApp Development Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
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 contractstest/— Solidity test files (suffix.t.sol)script/— deployment scripts (suffix.s.sol)lib/— dependencies installed as git submodulesfoundry.toml— configuration
myproject/
src/Counter.sol
test/Counter.t.sol
script/Deploy.s.sol
lib/forge-std/
foundry.tomlDependency 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 remappingsCheatcodes
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_projectQuick 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.
คำถามที่พบบ่อย
บทเรียน “Foundry เทียบกับ Hardhat” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Foundry เทียบกับ Hardhat” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Web3 & DApp Development Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Web3 & DApp Development Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Foundry เทียบกับ Hardhat”
เครื่องมือที่สร้างด้วย Rust คุณปฏิบัติ Web3 & DApp Development Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Web3 & DApp Development Fundamentals หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Web3 & DApp Development Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “Foundry เทียบกับ Hardhat” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Web3 & DApp Development Fundamentals นี้ได้ไหม
ได้ บทเรียน Web3 & DApp Development Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Foundry เทียบกับ Hardhat
- การทดสอบด้วย forge
- การทำ fuzz และอินวาเรียนต์
- cast และ anvil