Outils de développement

Cloudflare open source Forge pour rationaliser la génération de SDK et de CLI

Cloudflare a publié Forge, un pipeline open source pour générer des SDK, des CLI et de la documentation. Il s'exécute dans le CI pour prévisualiser les modifications et prend en charge les sorties chaînées.

Traduit automatiquement depuis l'original anglais.

Cloudflare a présenté Forge, un pipeline open source conçu pour générer des kits de développement logiciel (SDK), des interfaces en ligne de commande (CLI) et de la documentation. Publiée le 28 septembre 2026, cette outil vise à aider les équipes d'ingénierie à gérer des surfaces API complexes en automatisant la création de bibliothèques clientes et d'outils pour développeurs. L'entreprise a développé ce système en interne pour faire face à sa propre échelle avant de le rendre disponible au public sous la licence Apache 2.0.

Ce qui s'est passé

L'infrastructure API interne de Cloudflare a considérablement augmenté, prenant désormais en charge plus de 3 500 opérations réparties sur des centaines de services. Ces services backend sont écrits dans une variété de langages, notamment Rust, Go, TypeScript et Python. Alors que l'entreprise cherchait à construire une interface en ligne de commande unifiée pour l'ensemble de son API, ainsi que les SDK et la documentation correspondants, les outils de génération de code existants se sont révélés insuffisants. L'équipe d'ingénierie avait besoin d'un pipeline capable de gérer cette échelle massive tout en restant suffisamment flexible pour accommoder différents langages de programmation et exigences de flux de travail.

Le principal défi consistait à réduire la surcharge de coordination entre les différentes équipes produit. Auparavant, lorsqu'une équipe apportait une modification à l'API, elle ne disposait pas d'un moyen fiable de prévisualiser l'impact de ce changement sur le CLI global, les SDK ou la documentation avant de fusionner son code. Cela conduisait souvent à des situations où une fusion cassait involontairement le pipeline de génération, provoquant des problèmes que les autres équipes ne découvraient qu'au moment de la publication. Cloudflare a tenté d'utiliser plusieurs produits tiers hébergés pour résoudre ce problème, mais les a trouvés manquants de contrôle et de fiabilité, certains services ayant même cessé entièrement leurs activités.

Pour répondre à ces points de friction, Cloudflare a développé Forge comme solution interne et le publie désormais en open source. L'outil génère déjà la sortie requise pour le cf CLI et devrait alimenter la documentation API et les SDK de Cloudflare dans les mois à venir. En ouvrant le projet à la communauté, l'entreprise entend permettre à d'autres organisations de générer les surfaces nécessaires tant pour les développeurs humains que pour les agents IA, sans dépendre de fournisseurs SaaS propriétaires.

Comment cela fonctionne

Forge opère comme un pipeline de génération modulaire qui s'intègre directement dans les workflows d'intégration continue. Il fonctionne de manière similaire aux Workers Previews de Cloudflare, créant une construction complète de prévisualisation pour chaque modification soumise via une demande de tirage (pull request). Lorsqu'un développeur modifie une spécification API, Forge analyse le changement et génère des constructions de prévisualisation du CLI, de la documentation et des SDK. Ces prévisualisations mettent en évidence uniquement les modifications spécifiques effectuées, permettant aux ingénieurs d'installer et de tester immédiatement les nouveaux artefacts. Ce processus aide à détecter les changements cassants ou les erreurs au stade du CI, empêchant les problèmes en aval avant qu'ils n'atteignent la production.

Une fonctionnalité centrale de Forge est sa capacité à chaîner les transformateurs, ce qui signifie qu'il peut générer des sorties à partir d'autres sorties plutôt que simplement à partir de la spécification source originale. Alors que de nombreux générateurs produisent des cibles comme des CLI ou des providers Terraform directement à partir d'un SDK Go, Forge permet aux utilisateurs de contrôler eux-mêmes ce processus de chaînage. Par exemple, Cloudflare utilise cette capacité pour générer son cf CLI basé sur TypeScript à partir du SDK TypeScript, lui-même dérivé de la définition OpenAPI. Cette flexibilité soutient l'ajout de comportements locaux uniquement, tels que des commandes CLI personnalisées qui ne correspondent pas à des appels API directs, et garantit que ces ajouts manuels sont correctement reflétés dans la documentation générée.

Le système est conçu pour être extensible au-delà des cibles linguistiques standard. Il prend actuellement en charge OpenAPI comme type d'entrée, avec des plans pour supporter AsyncAPI, GraphQL, Cap’n Proto et Protobuf à l'avenir. Cette architecture permet la génération d'outils spécialisés comme Cap’n Web, le système RPC de Cloudflare qui permet à TypeScript d'appeler des API distantes comme si elles étaient des méthodes locales. Elle facilite également la création de liaisons pour des outils comme TanStack Query, des schémas Zod, des schémas Valibot et des serveurs Model Context Protocol, garantissant que toutes les interfaces destinées aux consommateurs restent synchronisées avec l'état réel de l'API.

Détails clés

  • Forge est publié sous la licence permissive Apache 2.0, autorisant une utilisation gratuite privée ou publique.
  • L'outil prend actuellement en charge les entrées OpenAPI, avec un support futur prévu pour GraphQL, AsyncAPI et Protobuf.
  • Il génère des constructions de prévisualisation pour chaque pull request, mettant en évidence les changements pour un test immédiat.
  • Forge prend en charge les sorties chaînées, permettant la création de CLI à partir de SDK plutôt que seulement de specs.
  • Le pipeline est déjà utilisé pour le cf CLI de Cloudflare et alimentera bientôt ses principaux SDK.
  • Il est conçu pour réduire la surcharge de coordination en détectant les changements cassants dans le CI.

Pourquoi c'est important

Pour les équipes logicielles gérant des API grandes ou distribuées, maintenir des bibliothèques clientes et une documentation cohérentes représente une charge opérationnelle significative. Les approches traditionnelles impliquent souvent des mises à jour manuelles ou des générateurs rigides qui ne tiennent pas compte de la logique personnalisée ou des exigences multi-langages. Forge répond à cela en fournissant une alternative auto-hébergée et contrôlable aux services tiers volatils. En exécutant le pipeline de génération dans leur propre environnement CI, les équipes gagnent la propriété de leurs outils d'expérience développeur et peuvent garantir que les SDK et la documentation sont toujours synchronisés avec les dernières définitions API.

La montée des agents IA en tant que consommateurs d'API augmente encore le besoin d'interfaces robustes et lisibles par machine. Les agents nécessitent des SDK précis, une documentation claire et des protocoles standardisés comme MCP pour interagir efficacement avec les services. La capacité de Forge à générer automatiquement ces surfaces garantit que les produits restent accessibles tant aux développeurs humains qu'aux systèmes automatisés. Ce changement traite la compatibilité avec les agents comme une exigence fondamentale plutôt que comme une réflexion après coup, aidant les organisations à préparer leurs API aux évolutions des modèles de consommation.

De plus, le soutien de l'outil aux stratégies de versionnement API offre une voie à suivre pour les services de longue durée. Cloudflare note que son API v4 est en place depuis dix ans, accumulant des changements qui justifieraient traditionnellement un bump majeur de version. En utilisant Forge pour publier des artefacts de manière incrémentale, les équipes peuvent explorer des approches de versionnement qui introduisent de nouvelles capacités sans casser les clients existants. Ceci est particulièrement pertinent pour des écosystèmes complexes comme Terraform, où les mises à niveau nécessitent une gestion minutieuse pour éviter de perturber les déploiements d'infrastructure.

Ce que vous pouvez faire

  • Évaluez Forge pour votre workflow actuel de génération API afin de voir s'il réduit la maintenance manuelle.
  • Intégrez le pipeline dans votre système CI pour générer des constructions de prévisualisation pour chaque pull request.
  • Utilisez la fonctionnalité de chaînage pour créer des CLI ou de la documentation personnalisés à partir de vos SDK existants.
  • Expérimentez la génération de liaisons pour des bibliothèques spécifiques comme TanStack Query ou des schémas de validation.
  • Contribuez au dépôt open source si vous avez des améliorations pour les formats d'entrée pris en charge.
  • Planifiez votre stratégie de versionnement API en exploitant les publications incrémentales d'artefacts plutôt que des mises à jour « big bang ».

Outils de la Boutique Bytechap

Continuer la lecture

Tous les articles