Cloudflare、SDKおよびCLI生成を効率化する「Forge」をオープンソース化
Cloudflareは、SDK、CLI、ドキュメントの生成を行うオープンソースパイプライン「Forge」をリリースしました。CI環境で変更プレビューを実行し、出力のチェーン処理に対応しています。
英語の原文から自動翻訳されました。
Cloudflareは、ソフトウェア開発キット(SDK)、コマンドラインインターフェース(CLI)、ドキュメントを生成するために設計されたオープンソースパイプライン「Forge」を発表しました。2026年9月28日にリリースされたこのツールは、クライアントライブラリや開発者向けツールの作成を自動化することで、エンジニアリングチームが複雑なAPIサーフェスを管理できるよう支援することを目的としています。同社はまず社内での大規模運用に対応するために本システムを開発し、その後Apache 2.0ライセンスの下で一般公開しました。
背景と経緯
Cloudflareの内部APIインフラストラクチャは大幅に拡大し、現在では数百のサービスにまたがる3,500以上のオペレーションをサポートしています。これらのバックエンドサービスは、Rust、Go、TypeScript、Pythonなど多様な言語で記述されています。同社が全API向けの統一CLIと対応するSDK、ドキュメントの構築を進める中で、既存のコード生成ツールでは不十分であることが判明しました。エンジニアリングチームには、この大規模な負荷を処理しつつ、異なるプログラミング言語やワークフロー要件に対応できる柔軟性を備えたパイプラインが必要でした。
主な課題は、分散したプロダクトチーム間の調整オーバーヘッドを削減することでした。従来、あるチームがAPIに変更を加えた場合、その変更がグローバルなCLI、SDK、またはドキュメントにどのような影響を与えるかを、コードのマージ前に確実にプレビューする方法がありませんでした。これにより、マージによって生成パイプラインが意図せず破綻し、他のチームがリリース時に初めて問題に気づくといった状況が発生していました。Cloudflareはこの解決策として複数のホスティング型サードパーティ製品を試みましたが、制御性や信頼性が不足しており、一部のサービスは完全に終了してしまいました。
こうした摩擦点を解消するため、Cloudflareは社内ソリューションとしてForgeを開発し、今回オープンソースとして公開しました。本ツールはすでにcf CLIの出力生成に使用されており、今後数ヶ月以内にCloudflareのAPIドキュメントおよびSDKの基盤としても稼働する予定です。プロジェクトをオープンソース化することで、同社は他の組織も、専有SaaSベンダーに依存することなく、人間の開発者とAIエージェントの両方に対して必要なインターフェースを生成できるようにすることを目指しています。
仕組み
Forgeは、継続的インテグレーション(CI)ワークフローに直接統合されるプラグイン式生成パイプラインとして動作します。CloudflareのWorkers Previewsと同様に、プルリクエストを通じて提出されたすべての変更に対して完全なプレビュービルドを作成します。開発者がAPI仕様を変更すると、Forgeはその変更をリントし、CLI、ドキュメント、SDKのプレビュービルドを生成します。これらのプレビューは具体的な変更点のみをハイライト表示するため、エンジニアは新しいアーティファクトを即座にインストールしてテストできます。このプロセスにより、CI段階で破壊的変更やエラーを検出し、本番環境への展開前に下流の問題を防止します。
Forgeの中核的な機能の一つは、トランスフォーマーのチェーン接続です。これは、元のソース仕様からのみではなく、他の出力からさらに出力を生成できることを意味します。多くのジェネレーターはGo SDKなどから直接CLIやTerraformプロバイダーなどのターゲットを生成しますが、Forgeではユーザーがこのチェーン処理を自ら制御できます。例えば、Cloudflareはこの機能を活用し、OpenAPI定義から導出されたTypeScript SDKに基づいて、TypeScriptベースのcf CLIを生成しています。この柔軟性により、直接のAPI呼び出しに対応しないカスタムCLIコマンドなど、ローカル専用の挙動を追加することが可能になり、手動での追加事項が生成されたドキュメントに正しく反映されるようになります。
本システムは標準的な言語ターゲットを超えて拡張可能になるよう設計されています。現在は入力タイプとしてOpenAPIをサポートしており、将来的にはAsyncAPI、GraphQL、Cap’n Proto、Protobufのサポートを計画しています。このアーキテクチャにより、TypeScriptでリモートAPIをローカルメソッドのように呼び出せるCloudflareのRPCシステム「Cap’n Web」のような専門ツールを生成できます。また、TanStack Query、Zodスキーマ、Valibotスキーマ、Model Context Protocolサーバーなどのためのバインディング作成も容易にし、すべての消費者向けインターフェースが実際のAPI状態と同期していることを保証します。
主要な詳細
- Forgeは寛容なApache 2.0ライセンスでリリースされており、プライベートまたはパブリックでの自由な利用が可能です。
- 本ツールは現在OpenAPI入力をサポートしており、将来はGraphQL、AsyncAPI、Protobufのサポートが予定されています。
- すべてのプルリクエストに対してプレビュービルドを生成し、即時テストのために変更点をハイライトします。
- 出力のチェーン接続をサポートしており、仕様書だけでなくSDKからもCLIを作成できます。
- このパイプラインはすでにCloudflareのcf CLIで使用されており、まもなく主要なSDKでも活用される予定です。
- CI内で破壊的変更を捕捉することで、調整オーバーヘッドの削減を目的としています。
重要性
大規模または分散型のAPIを管理するソフトウェアチームにとって、一貫性のあるクライアントライブラリとドキュメントの維持は大きな運用負担となります。従来のアプローチでは、手動での更新や、カスタムロジックやマルチ言語要件に対応できない硬直的なジェネレーターが含まれることが多くありました。Forgeは、不安定なサードパーティサービスの代替案として、セルフホスト型で制御可能な選択肢を提供することでこの課題に対処します。生成パイプラインを自社のCI環境内で実行することで、チームは開発者体験ツールに対する所有権を確保し、SDKとドキュメントが常に最新のAPI定義と同期していることを保証できます。
AIエージェントがAPI消費者として台頭することは、堅牢で機械可読なインターフェースの必要性をさらに高めます。エージェントは、サービスと効果的に相互作用するために、正確なSDK、明確なドキュメント、MCPなどの標準化されたプロトコルを必要とします。Forgeがこれらのインターフェースを自動的に生成できる能力により、製品は人間の開発者と自動化システムの両方にとってアクセシブルな状態を保つことができます。この変化は、エージェントとの互換性を事後対策ではなく根本的な要件として扱い、組織が変化する消費パターンに対してAPIを将来にわたって持続可能にする助けとなります。
さらに、本ツールのAPIバージョン戦略へのサポートは、長寿命サービスにとっての道筋を示します。Cloudflareは、v4 APIが10年間存続しており、伝統的にはメジャーバージョンアップが必要となるような変更が蓄積されていると指摘しています。Forgeを使用してアーティファクトを増分的にリリースすることで、チームは既存のクライアントを壊すことなく新機能を導入するバージョン管理手法を検討できます。これは、インフラデプロイメントの混乱を避けるために慎重な管理が必要なTerraformのような複雑なエコシステムにおいて特に重要です。
推奨アクション
- 現在のAPI生成ワークフローでForgeを評価し、手動メンテナンスが削減されるかを確認してください。
- パイプラインをCIシステムに統合し、すべてのプルリクエストに対してプレビュービルドを生成してください。
- チェーン接続機能を使用し、既存のSDKからカスタムCLIやドキュメントを作成してください。
- TanStack Queryやバリデーションスキーマなど、特定のライブラリのためのバインディング生成を試してください。
- サポートされている入力形式に関する改善提案がある場合は、オープンソースリポジトリに貢献してください。
- 「ビッグバン」アップデートの代わりに増分的なアーティファクトリリースを活用して、APIバージョン戦略を計画してください。
