5 dépôts
API code generators that produce server stubs and client packages for multiple transport protocols from a single definition.
Distinct from API Code Generators: Distinct from API Code Generators: adds multi-protocol transport support (HTTP, gRPC, WebSocket) to code generation.
Explore 5 awesome GitHub repositories matching development tools & productivity · Multi-Protocol Code Generators. Refine with filters or upvote what's useful.
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
Generates HTTP, gRPC, and WebSocket server stubs and client packages from a single design definition.
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
Compiles a single definition into multiple output formats like OpenAPI, JSON Schema, and Protobuf.
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.
Defines semantic constraints in Protobuf schemas to automatically generate code that ensures incoming messages are valid and consistent.