# Forge 誕生！API 定義から SDK・CLI・ドキュメントを作る Cloudflare 発 OSS パイプライン

みんな、しぃちゃんだよ！今日は Cloudflare の中で使われていた生成ツールが、オープンソースになったよ。

## なにが発表されたの？

Cloudflare の Blog で、Forge が紹介されたよ。Forge は、API 定義から SDK・CLI・ドキュメント・ライブラリなどを自動生成する、プラグイン式のオープンソースパイプラインで、CI の中で動くの。ライセンスは Apache 2.0 だよ。

## 今までどうだったの？

Cloudflare の API は 3,500 以上のオペレーションがあって、Rust・Go・TypeScript・Python で書かれた多数のサービスにまたがっているの。既存のホスト型の生成ツールでは、何百ものリポジトリにわたる変更の調整や、リリース前のパイプラインの破損防止が難しかったんだって。チーム間の調整コストを減らして、API の変更をプレビュービルドで確かめる方法が必要だったそうだよ。

## これで何が変わるの？

生成の仕組みを個々のチームのリポジトリ側に移すことで、開発者向けツールが常に API 定義と同期されるようになるよ。

## 深く潜ってみよう

Forge の特徴はこれだよ。

- プラグイン式: 入力は今のところ OpenAPI。AsyncAPI、GraphQL、Cap'n Proto、Protobuf への対応も予定されている
- Transformer の連鎖: ある生成物を別の生成物の入力にできる。たとえば TypeScript の CLI は SDK から生成され、それが Cap'n Web の仕様やドキュメントにもつながる
- Cap'n Web 連携: OpenAPI の仕様から Cloudflare の RPC システムを生成する。TypeScript からリモート API をローカルのメソッドのように呼べて、リクエストは 1 回のネットワーク呼び出しにまとめられる
- プレビュービルド: Workers Previews と同じ考え方で、PR ごとに変更部分だけを目立たせた完全なプレビュービルドを作る。生成パイプラインの失敗を早めに見つけられる

今後は、v4 API が 10 年続いたあとで、既存クライアントを壊さない API バージョニングを Forge で実現する計画もあるよ。近く出る SDK は、TypeScript、Rust、Python、Go、PHP、Terraform で、とくに Terraform プロバイダーの移行に注意を払うそうなの。

## まとめ

- API 定義から SDK・CLI・ドキュメントを生成する OSS パイプライン、Apache 2.0
- 3,500 以上のオペレーションを扱う課題から生まれた
- 生成を各チームの CI に移し、PR ごとにプレビュービルドを作る
- 入力は OpenAPI で、ほかの形式も今後対応予定

SDK や CLI の生成・保守に悩んでいる API 提供側の人に刺さる話だよ！
