22 dépôts
Tools that automatically produce server stubs and client libraries from API interface definitions.
Distinguishing note: Focuses on automated generation of backend stubs from interface specifications.
Explore 22 awesome GitHub repositories matching development tools & productivity · API Code Generators. Refine with filters or upvote what's useful.
go-zero is a toolkit for building cloud-native distributed services in Go. It functions as a microservices framework that provides built-in support for RPC, web APIs, and service discovery. The project includes a microservices code generator that produces production-ready server and client boilerplate from API descriptions. This automation is supported by a domain-specific language and pattern libraries designed to ensure compatibility with AI assistants. The framework incorporates a resilience suite for distributed system reliability, utilizing adaptive circuit breakers, rate limiting, and
Provides a utility to automatically produce server stubs and client libraries from API interface definitions.
yapi is an API management platform designed to coordinate the development of RESTful APIs between frontend, backend, and quality assurance teams. It functions as a centralized system for documenting interface specifications, simulating server responses, and validating requests through a built-in testing client. The platform features an API code generator that transforms interface specifications into typed request functions and data models across multiple programming languages. It also includes a mock server capable of generating synthetic responses using schema-based generators and rule-based
Produces typed request functions and data models in multiple languages from interface specifications.
This project is a command-line tool and template-based scaffolding engine that transforms API interface specifications into functional client libraries and server stubs. By automating the creation of type-safe SDKs and boilerplate code, it bridges the gap between service definitions and implementation, allowing developers to maintain synchronized codebases across many programming languages. The tool distinguishes itself through a portable execution model that utilizes containerized build isolation to ensure identical output regardless of the host environment. It features a modular, plugin-bas
Generates boilerplate server-side code and data models from API definitions to ensure consistent implementation.
Kratos is a toolkit for building cloud-native microservices in Go. It provides a comprehensive suite of framework primitives, including a dedicated toolset for API-first development using Protobuf to generate server and client code for gRPC and HTTP. The project is distinguished by its pluggable service infrastructure, which allows for the swapping of configuration stores, service registries, and data encoding formats. It utilizes a composable middleware pipeline to inject cross-cutting concerns such as authentication, request validation, and circuit breaking into the service flow. The frame
Provides tools to automatically produce server stubs and client libraries from API interface definitions.
APIJSON is a no-code database API generator and object-relational mapping layer that automatically transforms relational database schemas into functional HTTP endpoints. It provides a system for generating CRUD operations and technical documentation without the need to write manual backend code. The project is distinguished by its ability to allow clients to define custom JSON response structures and field aliases directly within the request. It features dynamic query translation that converts structured JSON parameters into optimized SQL for complex relational joins, subqueries, and data agg
Automatically generates CRUD HTTP endpoints and technical documentation based on relational database schemas.
Swagger Codegen is a template-driven engine and multi-language toolkit used to generate API client SDKs, server stubs, and human-readable documentation from OpenAPI specifications. It translates these specifications into functional libraries and boilerplate routing code across various target programming languages. The tool utilizes a pluggable generator module system and an integrated template engine, allowing for the customization of generated source code and the creation of new language-specific generators. It supports flexible specification sourcing via local files, remote HTTP endpoints,
Generates client libraries and server stubs by processing API definition files stored on the local filesystem.
This project is a Spring Boot API starter kit and RESTful project skeleton designed for building backend services. It provides a foundational codebase that implements a layered service architecture and standardized directory structures to organize controllers, services, and data mappers. The project features a MyBatis CRUD boilerplate generator that automates the creation of models and controllers from database tables using customizable templates. It includes a security framework for protecting endpoints via interface signature authentication to verify user identity and request authorization.
Automates the creation of data access layers to reduce manual coding for database operations.
This project is an end-to-end encrypted communication client designed for secure messaging and identity management using public-key cryptography. It provides a cryptographic identity manager to verify authenticity across platforms and integrates a local messaging daemon to synchronize encrypted data and handle network communication. The system features a remote encrypted file system that mounts encrypted storage as local directories for direct file interaction. It also includes automated identity provisioning for registering and authenticating new devices and automation bots using cryptograph
Provides tools to automatically generate client libraries and server stubs from API interface definitions.
Twirp est un framework RPC Protocol Buffers conçu pour implémenter une communication de microservices distribués typée et sécurisée via HTTP. Il fonctionne comme un framework de communication de microservices et un générateur de code API qui produit des stubs clients et des interfaces serveur fortement typés à partir de définitions de schéma pour éliminer le boilerplate réseau manuel. Le framework assure la compatibilité avec l'infrastructure web existante en exécutant des appels de procédure distante (RPC) sur le transport HTTP standard. Il utilise des contrats basés sur des schémas comme source unique de vérité pour permettre l'interopérabilité entre les langages et découpler la logique métier du transport réseau. Le système couvre plusieurs domaines de capacités de base, incluant le routage piloté par interface, la sérialisation de données multi-formats prenant en charge à la fois JSON et binaire, et des middlewares de cycle de vie de requête pour les préoccupations transversales. Il fournit également un système de mappage d'erreurs standardisé pour traduire les échecs de service en codes lisibles par machine et inclut des outils pour la vérification de la compatibilité client.
Automates the production of server stubs and client libraries from API interface definitions.
NSwag is an OpenAPI toolchain for .NET that provides a suite of generators for converting OpenAPI specifications and JSON schemas into clients, server stubs, and structured documentation. It enables the creation of type-safe client libraries and data transfer objects, as well as the generation of OpenAPI specifications by analyzing .NET controllers. The project supports contract-first API development by generating server controller stubs from specifications and offers dedicated TypeScript API integration to ensure type safety in frontend applications. It also provides tools for hosting intera
Automatically produces server stubs and controller classes from API interface definitions.
Simplebank is a financial services backend application built with Go that manages bank accounts and transfers. It utilizes a dual-protocol interface, providing both gRPC and REST APIs via Protocol Buffers to support different client communication requirements. The system implements a PostgreSQL data layer with versioned schema migrations and type-safe query generation. It handles financial operations through atomic fund transfers and balance change tracking to maintain consistent audit trails. The architecture includes an asynchronous task worker system using a message queue to offload long-
Produces server stubs and client libraries from Protocol Buffer interface definitions.
Goa is a design-first Go framework that generates server and client code, documentation, and request validation from a single declarative domain-specific language (DSL). At its core, it provides a Go DSL for defining API endpoints, data types, and error models, which compiles into fully functional HTTP and gRPC server stubs, client packages, and OpenAPI specifications. The framework distinguishes itself through its plugin-extensible code generation pipeline, allowing custom code generation steps, middleware, or transport layers to be added via plugins. It supports multiple transport protocols
Produces fully functional HTTP and gRPC server stubs from the API design specification.
TypeSpec is a language for defining cloud API shapes and generating OpenAPI, JSON Schema, and client/server code from a single source of truth. It functions as a protocol-agnostic API designer that models REST, gRPC, and other API protocols using a unified, extensible syntax, with a decorator-based metadata system for attaching metadata, validation rules, and lifecycle visibility to API models and operations. The compiler produces OpenAPI 3.0 specifications and other artifacts, and the tool supports declaring API versions and tracking changes to models, properties, and operations across releas
Writes emitters and decorators to produce client libraries, server stubs, or documentation in any target format.
MyBatis Generator est un outil qui inspecte les tables de base de données pour produire automatiquement des objets modèles, des interfaces de mapper et des fichiers de configuration SQL. Il fonctionne comme un mappeur de schéma de base de données et un générateur d'opérations CRUD, traduisant les colonnes de base de données relationnelle en classes et enregistrements spécifiques au langage. Le projet est un générateur de code extensible qui permet la personnalisation des fichiers de sortie via un mécanisme de plugin. Ce framework permet l'ajout d'une logique métier spécifique ou la modification du processus de génération pour produire des fichiers de sortie sur mesure. Le générateur couvre un large éventail de capacités, notamment l'implémentation de requêtes dynamiques, la création de modèles immuables et l'automatisation des opérations standard de création, lecture, mise à jour et suppression. Il prend en charge le mappage de schéma de base de données avec des clés primaires virtuelles et peut générer du code pour plusieurs langages, y compris Kotlin. Le processus de génération peut être exécuté via des outils en ligne de commande, des appels de fonction directs ou en tant que plugin d'outil de build intégré dans des pipelines d'intégration continue.
Creates model objects and configuration files based on database tables to automate data operations.
Blog.Core est un boilerplate backend prêt pour la production pour construire des API d'entreprise et des microservices en utilisant ASP.NET Core. Il fournit une infrastructure fondamentale pour les systèmes distribués, incluant des outils pour le scaffolding orienté base de données et l'implémentation de frameworks d'API multi-tenant. Le projet se distingue par la génération automatisée de la couche de données, qui produit des modèles d'entités et des couches de dépôt directement à partir des schémas de base de données. Il implémente un système de gestion d'identité centralisé utilisant des protocoles de serveur d'identité standards pour gérer l'authentification et l'autorisation à travers plusieurs clients et projets. Le framework couvre un large éventail de capacités d'entreprise, incluant le traitement de messages asynchrones via des bus d'événements, la mise en cache mémoire distribuée et la séparation du trafic de base de données en lecture-écriture. Il intègre un contrôle d'accès basé sur les rôles avec des restrictions de données départementales et fournit une observabilité système via le profilage de performance API et l'audit d'activité. Le système inclut également le support de la communication bidirectionnelle serveur-client pour les notifications push, l'intégration de recherche plein texte et la configuration centralisée des services. Les environnements de production sont gérés via un déploiement NixOS déclaratif pour une infrastructure reproductible.
Automatically creates model, service, and repository classes from existing database tables using templates.
PostgREST is a tool that automatically transforms a PostgreSQL database schema into a production-ready RESTful API. It serves as a database access layer and query engine that maps HTTP requests directly to SQL queries, providing a low-code interface for executing create, read, update, and delete operations without requiring manual boilerplate code. The project distinguishes itself by using schema-driven API generation and metadata-based discovery to expose database tables as navigable resources. It extends standard CRUD capabilities through the execution of custom and templated SQL, a plugin-
Automatically transforms database schemas into functional REST HTTP endpoints without manual boilerplate code.
grpc-web est une couche de traduction et un système de proxy qui permet aux navigateurs web de communiquer avec des services backend gRPC. Il se compose d'un proxy gRPC Web qui convertit les requêtes HTTP et WebSocket basées sur le navigateur en appels gRPC standard, ainsi qu'un client gRPC TypeScript pour effectuer des appels de procédure distante fortement typés depuis des navigateurs ou des environnements Node.js. Le projet propose un pont de streaming bidirectionnel qui utilise des WebSockets pour contourner les limitations du navigateur, permettant une communication full-duplex et le streaming de données côté client. Il inclut un générateur de code de protocol buffer qui analyse les fichiers de schéma pour produire des classes de requête et de réponse JavaScript et TypeScript typées. Le système couvre un large éventail de capacités, notamment la sélection de transport, la gestion CORS pour restreindre les origines approuvées et la connectivité backend sécurisée via le chiffrement TLS. Il fournit également une surveillance du trafic proxy pour suivre les requêtes et les connexions via des métriques et des points de terminaison de débogage.
Parses .proto files to generate typed JavaScript and TypeScript request and response classes.
Cerbos is an open-source authorization service that provides a centralized, language-agnostic engine for managing access control. It functions as a policy-as-code platform, allowing teams to define, test, and distribute authorization rules using declarative YAML or JSON configurations. By decoupling access logic from application code, it enables consistent permission enforcement across diverse service stacks. The project distinguishes itself through its ability to translate high-level authorization policies into native database query filters. This capability allows applications to enforce sec
Defines query plans that enforce resource access conditions at the database level.
Ce projet est un plugin de validation de protocol buffers et un générateur de code qui crée une logique de validation cohérente à travers plusieurs langages de programmation. Il fonctionne comme une extension de compilateur pour la chaîne d'outils Protocol Buffer, permettant aux développeurs de définir des contraintes sémantiques directement dans les fichiers de schéma pour assurer la cohérence des données. L'outil utilise des options personnalisées pour intégrer des règles de validation dans les définitions de messages, mappant ces contraintes de schéma vers des modèles d'implémentation spécifiques au langage. Il emploie une vérification de contrainte basée sur des prédicats et un parcours récursif pour appliquer les règles à travers les hiérarchies de messages imbriquées. La surface de validation couvre les plages et valeurs numériques, les modèles et formats de chaînes, les contraintes de séquence d'octets et l'application des enums. Il gère également les tailles de collections et de champs répétés, la validation de types complexes pour les horodatages et les durées, et les exigences pour la sélection de champs d'union.
Provides a protoc plugin that generates code to enforce semantic constraints and data validation rules for messages.
Space Cloud is a self-hosted, cloud-native backend-as-a-service suite. It functions as a Kubernetes-based serverless platform that provides a GraphQL and REST API gateway, a database API generator, and an event-driven orchestrator. The platform transforms SQL and NoSQL database schemas into secure endpoints, eliminating the need for manual backend development. It distinguishes itself by allowing remote data joins, which combine records from internal databases and external HTTP microservices within a single query. The system covers a broad range of capabilities, including rule-based access co
Automatically transforms database schemas into functional GraphQL and REST endpoints.