隆重推出 Forge:用于生成 SDK、CLI、文档等的开源流水线
内容提要
Cloudflare发布开源工具Forge,用于自动生成SDK、CLI和文档。其API拥有超3500个操作且跨多语言,原有工具难以应对。Forge可在CI中运行,每次改动生成预览,支持链式转换,能生成Cap'n Web、MCP等。采用Apache 2.0许可,免费开放,未来将支持多语言SDK及API版本管理。
延伸解读
Forge 的 CI 集成与预览机制
Forge 在 CI 中运行,每次 API 变更都会生成预览构建,包括 CLI、文档和 SDK,并高亮显示变更部分。这类似于 Workers Previews,但针对 SDK 生成。开发者可以安装预览进行测试,从而在合并前发现潜在问题,避免下游破坏。这种机制特别适合 API 操作超过 3500 个、跨数百个仓库的大型项目。
链式转换与灵活生成
Forge 支持链式转换,允许从一个输出生成另一个输出。例如,从 OpenAPI 生成 TypeScript SDK,再基于 SDK 生成 CLI 和 Cap'n Web 规范。这种设计让用户能控制生成流程,适应不同技术栈。Forge 还计划支持 AsyncAPI、GraphQL 等更多输入格式,未来可扩展性较强。
API 版本管理的未来方向
Cloudflare 的 v4 API 已使用十年,期间有许多符合 SemVer 重大版本定义的变更,但未发布新大版本。Forge 为更好的 API 版本管理奠定基础,计划允许发布新大版本而不破坏旧客户端或 SDK。未来将推出 TypeScript、Rust、Python、Go、PHP 和 Terraform 等 SDK,其中 Terraform 的过渡会特别谨慎。
开源许可与自主控制
Forge 采用 Apache 2.0 许可,免费开放,用户可以自由运行、修改和私有部署。Cloudflare 认为构建 API 工具是互联网的核心部分,不应依赖 SaaS 产品。因此,Forge 让用户完全拥有自己的 SDK、CLI 和文档,无需受制于外部服务。这降低了协调成本,也避免了供应商锁定风险。
Q&A
Forge 是什么?
Forge 是 Cloudflare 推出的开源、可插拔的生成流水线,用于自动生成 SDK、CLI、文档和库。它可以在 CI 中运行,支持链式转换,能生成 Cap'n Web、MCP 等。采用 Apache 2.0 许可,免费开放。
为什么 Cloudflare 要开发 Forge?
Cloudflare 的 API 有超过 3500 个操作,服务使用多种语言编写,原有工具难以应对规模和跨语言需求。他们需要一种能在 CI 中运行、为每个 PR 生成预览、减少团队协调开销的生成流水线,而现有托管产品无法满足需求,因此决定自建 Forge。
Forge 如何帮助团队在 CI 中检测问题?
Forge 在每个团队的 API 仓库中运行,像 AI 代码审查和测试流水线一样。它会对每次更改进行 lint,并生成包含更改高亮的 CLI、文档和 SDK 预览构建,供安装测试。这类似于 Workers Previews,能在合并前发现潜在问题,避免下游故障。
Forge 的链式转换是什么意思?
Forge 支持将生成器的输出作为另一个生成器的输入,从而链式生成更多输出。例如,可以从 OpenAPI 生成 TypeScript SDK,再用该 SDK 生成 cf CLI 和 Cap'n Web 规范。用户可自定义链式关系,比如用 Python SDK 生成 Python CLI,并整合手写命令到文档中。
Forge 能生成哪些类型的输出?
Forge 可以生成 SDK、CLI、文档、库,以及 Cap'n Web 绑定、MCP 服务器、TanStack Query 绑定、Zod 或 Valibot 模式等。它支持 OpenAPI 输入,未来计划支持 AsyncAPI、GraphQL、Cap'n Proto、Protobuf 等。
Forge 如何改善 API 版本管理?
Forge 通过沿途发布工件,支持一种新的 API 版本管理方法,允许发布新的主要 API 版本而不破坏旧客户端或 SDK。Cloudflare 的 v4 API 已使用 10 年,他们希望避免 v5 导致客户落后,因此正在开发此功能。
Forge 是开源的吗?使用许可是什么?
是的,Forge 是开源的,采用 Apache 2.0 许可。任何人都可以免费部署和运行,也可以自行修改并私有使用。Cloudflare 希望人们加入并贡献。