本文介绍了 Foundry 作为 Rust 编写的智能合约工具包的优势,包括速度快、原生 Solidity 测试、精简的 CLI 工具以及强大的内置功能。并对比了 Foundry 和 Hardhat,强调了 Foundry 在测试、脚本和模拟智能合约方面的优势。
Foundry 运行原生 Solidity 测试的速度比 Hardhat 快 5 倍。 了解它如何简化工作流程、添加作弊码并避免 JS 开销。
2025-06-17 - 6 分钟阅读
Foundry
threesigma's twitterthreesigma's linkedinthreesigma's github
Foundry 是一个基于 Rust 的智能合约工具包 (forge, cast, anvil, chisel),它以 Solidity 原生方式运行测试和脚本。 通过用 Solidity 编写测试,开发人员可以避免 JavaScript 的 async/await 样板代码,并使用单一语言,从而使测试简洁。
例如,在 Hardhat 中,你用 JavaScript/TypeScript 编写测试,而 Foundry 允许你编写:
Foundry 是一个基于 Rust 的智能合约工具包(forge
、cast
、anvil
、chisel
),它以 Solidity 原生方式运行测试和脚本。 通过用 Solidity 编写测试,开发人员可以避免 JavaScript 的 async/await
样板代码,并使用单一语言,从而使测试简洁。
例如,在 Hardhat 中,你用 JavaScript/TypeScript 编写测试,而 Foundry 允许你编写:
[图片]
这种原生的 Solidity 方法也解锁了内置功能:Foundry 运行速度很快,通常比替代方案快 2-5 倍(编译/测试时间)。 事实上,Paradigm 的基准测试表明,Foundry 编译库的速度比 Hardhat 快 5 倍。
Foundry 的 CLI 工具同样精简:forge
(构建/测试框架),cast
(多功能 EVM CLI),anvil
(本地 EVM 节点)和 chisel
(Solidity REPL)。 相比之下,Hardhat 是一个 Node.js 框架,具有庞大的插件生态系统,但需要 JS 知识。 正如一位观察员所说,Hardhat 是 JS 开发人员“所期望的”,而 Foundry “在 Unix 上运行得更好”,并且更受审计员或 Solidity 纯粹主义者的喜爱。
虽然 Hardhat 的主页强调灵活的、以 JavaScript 为中心的工作流程,但 Foundry 却强调速度和原生 Solidity 测试。 Hardhat 脚本和测试存在于 JavaScript 中(带有大量的生态系统工具),而 Foundry 测试是通过 forge
命令执行的 Solidity 合约。 在实践中,这意味着更快的迭代速度(没有 NodeJS 启动或转译)和更少的外部样板代码。
Foundry 的网站使用锻造主题来表示其 Rusty、高性能的传统。 在底层,Foundry 的作弊码(通过特殊的 vm
对象访问)允许你直接在测试中操作 EVM 状态。 例如,你可以立即推进 block.number
或模拟一个地址,而无需编写复杂的脚本。 Foundry 还通过 forge install
和直接 GitHub 导入来简单地管理依赖项。 总而言之,高级开发人员可以从 Foundry 的“solidity-in, solidity-out”测试、闪电般的性能以及强大的内置功能中获益,例如模糊测试、不变性测试和低级作弊码,以控制时间、帐户等。
这种原生的 Solidity 方法也解锁了内置功能:Foundry 运行速度很快,通常比替代方案快 2-5 倍(编译/测试时间)。 事实上,Paradigm 的基准测试表明,Foundry 编译库的速度比 Hardhat 快 5 倍。
Foundry 的 CLI 工具同样精简:forge
(构建/测试框架),cast
(多功能 EVM CLI),anvil
(本地 EVM 节点)和 chisel
(Solidity REPL)。 相比之下,Hardhat 是一个 Node.js 框架,具有庞大的插件生态系统,但需要 JS 知识。 正如一位观察员所说,Hardhat 是 JS 开发人员“所期望的”,而 Foundry “在 Unix 上运行得更好”,并且更受审计员或 Solidity 纯粹主义者的喜爱。
虽然 Hardhat 的主页强调灵活的、以 JavaScript 为中心的工作流程,但 Foundry 却强调速度和原生 Solidity 测试。 Hardhat 脚本和测试存在于 JavaScript 中(带有大量的生态系统工具),而 Foundry 测试是通过 forge
命令执行的 Solidity 合约。 在实践中,这意味着更快的迭代速度(没有 NodeJS 启动或转译)和更少的外部样板代码。
Foundry 的网站使用锻造主题来表示其 Rusty、高性能的传统。 在底层,Foundry 的作弊码(通过特殊的 vm
对象访问)允许你直接在测试中操作 EVM 状态。 例如,你可以立即推进 block.number
或模拟一个地址,而无需编写复杂的脚本。 Foundry 还通过 forge install
和直接 GitHub 导入来简单地管理依赖项。 总而言之,高级开发人员可以从 Foundry 的“solidity-in, solidity-out”测试、闪电般的性能以及强大的内置功能中获益,例如模糊测试、不变性测试和低级作弊码,以控制时间、帐户等。
Foundry 不仅仅是更快。 它重新思考了 Solidity 开发人员如何测试、编写脚本和模拟智能合约。 对于想要原始速度、原生工具和完全控制 EVM 的团队来说,它正成为首选堆栈。 无论你是构建生产合约还是审计它们,完全使用 Solidity 编写代码,并利用强大的作弊码且没有外部 JS 样板代码,这都是一个颠覆性的改变。
- 原文链接: threesigma.xyz/blog/foun...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!