10 dépôts
Tools that automatically generate type-safe source code from Protocol Buffer service and message definitions.
Distinct from Protobuf-to-Go Generators: Existing candidates are too narrow, targeting specific languages like Go or .NET, while this is a general Rust implementation for gRPC stubs.
Explore 10 awesome GitHub repositories matching development tools & productivity · Protobuf Code Generators. Refine with filters or upvote what's useful.
This project is a comprehensive technical guide to advanced Go programming. It serves as a programming guide, technical reference, and textbook covering low-level optimization and distributed systems architecture. The resource provides detailed instructions on writing assembly instructions to optimize performance-critical code and managing C-Go interoperability to bridge C libraries with Go. It also functions as a manual for implementing remote procedure call mechanisms and creating custom plugins for the Protocol Buffers compiler. The material covers high-level capabilities including the de
Explains how to build custom plugins for the Protocol Buffers compiler to generate type-safe code.
grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and servers. It provides an asynchronous communication stack and a protocol buffers implementation for encoding, decoding, and generating type-safe code from service definitions. The project enables the implementation of unary and bi-directional data streaming over the HTTP/2 protocol. It includes specialized support for gRPC-Web integration, allowing browser-based clients to communicate with services through protocol translation. The infrastructure covers a broad range of distr
Provides automated code generation to produce strongly typed client and server stubs directly from protobuf interface definitions.
Buf is a toolchain for managing the full lifecycle of Protocol Buffers schemas. It provides a set of tools for schema governance, including linting to enforce style guides, a breaking change detector to ensure backward compatibility, and a system for producing language-specific source code via local or remote plugins. The project distinguishes itself through a remote schema registry that centralizes the hosting, versioning, and distribution of Protocol Buffers modules. This registry allows for server-side enforcement of governance policies, such as blocking updates that introduce backward-inc
Automatically generates type-safe source code and client stubs from Protocol Buffer definitions using local or remote plugins.
Semantic est une bibliothèque basée sur Haskell et un outil en ligne de commande conçu pour l'analyse de code source polyglotte. Il fonctionne comme un framework d'analyse statique et un parseur d'arbres de syntaxe abstraite (AST) capable de convertir plusieurs langages de programmation en arbres structurés basés sur des définitions de grammaire. Le système se distingue par son moteur de comparaison sémantique qui détecte les changements structurels et fonctionnels entre les versions de code, plutôt que de se limiter aux différences textuelles. Il permet une analyse transversale en traduisant les langages sources en une représentation intermédiaire polyglotte unifiée. Le framework offre une large gamme de capacités pour parser des langages comme Rust, Go, Python, Ruby, PHP, TypeScript et TSX. Il couvre l'analyse sémantique via le mappage de portée, l'extraction de symboles, la génération de graphes sémantiques, ainsi que des outils d'analyse de motifs et d'évaluation du comportement des programmes. L'ensemble d'outils inclut des utilitaires en ligne de commande pour standardiser la mise en page des fichiers sources Haskell.
Uses protobuf schemas to define and generate structured data types for representing source code and semantic analysis results.
Prototool est une boîte à outils de développement pour Protocol Buffers qui fournit une suite d'outils pour le linting, le formatage et la génération de code à partir de fichiers de schéma. Il fonctionne comme un système pour gérer le cycle de vie des définitions Protocol Buffer via une interface en ligne de commande. La boîte à outils se distingue en fournissant un détecteur de changements cassants qui compare différentes versions de définitions pour identifier les changements incompatibles au niveau du fil ou de la source. Elle inclut également une interface client gRPC capable d'invoquer des points de terminaison en utilisant des requêtes JSON en compilant dynamiquement les définitions Protobuf. Le projet couvre de larges domaines de capacités incluant la validation de schéma et l'application de style, la génération de stubs de code spécifiques au langage et la gestion automatisée des binaires de compilateur. Il fournit également des utilitaires pour l'exportation de jeux de descripteurs de fichiers et la génération de fichiers de schéma avec du boilerplate automatisé.
Produces language-specific source code and file descriptor sets from Protocol Buffer definitions.
Ce projet est une bibliothèque et un framework Protocol Buffers pour Swift fournissant un runtime pour la sérialisation et la désérialisation de données structurées. Il inclut un générateur de code qui transforme les fichiers de schéma en structures Swift typées et un framework de sérialisation binaire pour convertir les données en flux compacts. La bibliothèque fonctionne comme un mappeur de données JSON, transformant les messages en représentations JSON standard pour faciliter l'échange de données multiplateformes. Elle utilise une approche basée sur les schémas pour garantir une modélisation cohérente des données entre les applications Swift et les services écrits dans d'autres langages. Le framework couvre la sérialisation et la désérialisation de données binaires et JSON, utilisant une bibliothèque runtime basée sur des interfaces pour gérer ces formats à travers les messages générés.
Automatically generates type-safe Swift source code from Protocol Buffer message and service definitions.
Prost est une implémentation de Protocol Buffers pour Rust qui fonctionne comme un framework de sérialisation binaire et un générateur de code. Il traduit les définitions de schéma en structs et enums Rust idiomatiques, fournissant la logique nécessaire pour encoder et décoder des données structurées dans le format binaire Protocol Buffers. Le projet se distingue par une implémentation no-std, lui permettant d'opérer dans des environnements embarqués ou noyau qui manquent de bibliothèque standard. Il sert également d'inspecteur de schéma en émettant des jeux de descripteurs de fichiers, ce qui permet l'analyse programmatique des définitions de schéma originales au moment de l'exécution. La bibliothèque couvre un large éventail de capacités, incluant la génération de traits de service pour la modélisation d'interface, la prise en charge de types bien connus, et des annotations de macros procédurales pour mapper des définitions de type manuelles. Elle fournit également des outils pour la gestion des dépendances et le fuzz testing pour assurer la stabilité de la sérialisation.
Automatically generates type-safe Rust source code and serialization logic from Protocol Buffer definitions.
go-coffeeshop est une architecture de microservices événementielle conçue pour gérer le cycle de vie complet des commandes clients. Il coordonne des services indépendants en utilisant des modèles de messagerie asynchrones pour gérer les workflows métier, le traitement en arrière-plan et le suivi de l'exécution des commandes. Le projet utilise une stack HashiCorp pour l'infrastructure, employant Nomad, Consul et Vault pour l'orchestration des services et le stockage des secrets. L'infrastructure est gérée via une automatisation déclarative utilisant Terraform pour assurer un déploiement cohérent et reproductible des ressources de calcul et du réseau. Le système inclut une passerelle API REST pour le routage du trafic et un service mesh pour une communication interne sécurisée. Les capacités techniques couvrent l'injection de dépendances à la compilation, la génération de requêtes typées et l'utilisation de protocol buffers pour la génération de code. Les domaines fonctionnels couvrent la gestion de l'inventaire des produits numériques, la récupération des menus et le traitement des commandes clients, de la passation jusqu'à l'exécution finale.
Generates type-safe language bindings and server implementations from protocol buffer definitions.
Ce projet est un moteur de workflow d'apprentissage automatique conteneurisé et un orchestrateur conçu pour automatiser le cycle de vie complet des modèles d'apprentissage automatique sur des clusters Kubernetes. Il fonctionne comme un compilateur de pipeline MLOps qui transforme un langage spécifique au domaine en spécifications structurées pour un déploiement portable et évolutif. La plateforme fournit un environnement multi-tenant avec des espaces de noms isolés et une authentification par fournisseur d'identité. Elle se distingue par une combinaison d'isolation des tâches basée sur des conteneurs, une gestion des artefacts fortement typée pour le passage de données et une mise en cache des résultats adressable par contenu pour éviter les calculs redondants. Le système couvre l'orchestration complète des workflows, incluant l'exécution parallèle des tâches, la planification récurrente des exécutions et la logique de branchement conditionnel. Il prend en outre en charge le suivi des expériences, la collecte des métriques de workflow et la gestion des composants de pipeline réutilisables, avec la possibilité de configurer des demandes de ressources matérielles spécifiques pour le CPU, la mémoire et le GPU. Le logiciel est distribué via un SDK Python et peut être déployé dans des environnements autonomes, locaux ou multi-tenant.
Generates language-specific artifacts from protobuf platform definitions to ensure cross-language compatibility.
This library provides a framework for implementing gRPC clients and services in Rust, enabling reliable communication between distributed system components. It facilitates the definition and hosting of asynchronous unary and streaming network services, utilizing protocol buffers to ensure consistent, strongly-typed data exchange. The project distinguishes itself by integrating with a high-performance C core via foreign function interfaces to handle low-level networking and protocol logic. It employs a task-based concurrency model to coordinate non-blocking operations and utilizes zero-copy me
Includes tools to create source code modules and interface stubs from structured data definitions.