4 Repos
Plugins that generate language-specific source code from protocol buffer schema definitions.
Distinct from Code Generation Plugins: Specifically focuses on schema-to-code generation for Protobuf, whereas the parent covers general code generation pipeline plugins.
Explore 4 awesome GitHub repositories matching software engineering & architecture · Protobuf Code Generators. Refine with filters or upvote what's useful.
This project is a Protocol Buffers implementation for Go, providing a binary serialization framework to convert native data structures into a compact binary format for efficient network transmission and storage. It functions as a language bindings generator, utilizing a compiler plugin to create Go source code from platform-neutral protocol buffer definitions. The implementation includes a JSON data mapper that transforms structured binary messages into JSON format to facilitate compatibility with web services and external APIs. It also enables cross-language data exchange by using a common s
Provides a compiler plugin that generates Go source code from platform-neutral protocol buffer definitions.
Prototool ist ein Entwicklungs-Toolkit für Protocol Buffers, das eine Suite an Tools zum Linting, Formatieren und Generieren von Code aus Schemadateien bereitstellt. Es fungiert als System zur Verwaltung des Lebenszyklus von Protocol-Buffer-Definitionen über ein Command-Line-Interface. Das Toolkit zeichnet sich durch einen Detektor für Breaking Changes aus, der verschiedene Versionen von Definitionen vergleicht, um inkompatible Änderungen an der Schnittstelle oder am Quellcode zu identifizieren. Es enthält zudem ein gRPC-Client-Interface, das in der Lage ist, Endpunkte mittels JSON-Anfragen durch dynamische Kompilierung von Protobuf-Definitionen aufzurufen. Das Projekt deckt breite Funktionsbereiche ab, einschließlich Schema-Validierung und Style-Durchsetzung, sprachspezifischer Code-Stub-Generierung und automatisierter Verwaltung von Compiler-Binaries. Es bietet zudem Dienstprogramme für den Export von File-Descriptor-Sets und die Generierung von Schemadateien mit automatisiertem Boilerplate.
Generates language-specific source code from Protobuf definitions using a configuration-driven template mapping.
Wire ist ein plattformübergreifender Codegenerator und eine Implementierung von gRPC und Protocol Buffers. Er transformiert Schemadefinitionen in typsichere native Sprachbindungen für Kotlin, Swift und Java, um einen konsistenten Datenaustausch und die Kommunikation zwischen verteilten Systemen zu gewährleisten. Das Projekt bietet spezialisierte Tools für das Protocol-Buffer-Schema-Management, einschließlich der Möglichkeit, ungenutzte Typen zu entfernen und Felder nach Version zu filtern, um die endgültige Binary-Größe zu reduzieren. Es handhabt zudem das Namespace-Management und ermöglicht die Erstellung benutzerdefinierter Schema-Handler, um benutzerdefinierte Logik während der Kompilierungsphase auszuführen. Das Framework deckt ein breites Spektrum an Funktionen ab, einschließlich der Generierung von Dienstschnittstellen für synchrone und asynchrone Remote Procedure Calls, das Mapping von Schematypen auf native Sprachprimitive und die Serialisierung von Nachrichten in JSON. Es enthält zudem Unterstützung für die Generierung von Parcelable-Nachrichten und Mock-Clients für Tests.
Generates language-specific source code directly from protocol buffer schema definitions.
Dieses Projekt ist ein Protocol-Buffer-Validierungs-Plugin und Code-Generator, der konsistente Validierungslogik über mehrere Programmiersprachen hinweg erstellt. Es fungiert als Compiler-Erweiterung für die Protocol-Buffer-Toolchain und ermöglicht es Entwicklern, semantische Constraints direkt in Schema-Dateien zu definieren, um Datenkonsistenz sicherzustellen. Das Tool verwendet benutzerdefinierte Optionen, um Validierungsregeln in Nachrichtendefinitionen einzubetten und diese Schema-Constraints auf sprachspezifische Implementierungsmuster zu mappen. Es nutzt prädikatbasierte Constraint-Prüfung und rekursive Traversierung, um Regeln über verschachtelte Nachrichtenhierarchien hinweg durchzusetzen. Die Validierung umfasst numerische Bereiche und Werte, String-Muster und -Formate, Byte-Sequenz-Constraints sowie Enum-Durchsetzung. Zudem verwaltet es Sammlungen und Größen wiederholter Felder, komplexe Typvalidierung für Zeitstempel und Zeitdauern sowie Anforderungen für die Auswahl von Union-Feldern.
Functions as a protoc plugin to generate language-specific validation source code from Protocol Buffer schemas.