5 Repos
Tools that generate source code for a wide variety of target languages from a single specification.
Distinct from Code from Specification Generators: Distinct from Code from Specification Generators: focuses on the ability to target many different languages for data consistency.
Explore 5 awesome GitHub repositories matching software engineering & architecture · Multi-Language Code Generators. Refine with filters or upvote what's useful.
Protocol Buffers is a binary serialization framework used to encode structured information into compact payloads to reduce network bandwidth and storage. It functions as a cross-language data interchange standard that enables different platforms and languages to exchange structured data using a shared schema. The project includes an interface definition language compiler that transforms schema definitions into type-safe source code for multiple target programming languages. This mechanism decouples data structures from specific language memory layouts and ensures consistent data handling acro
Converts data definitions into source code for multiple programming languages to ensure consistent data handling.
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.
Transforms schema definitions into source code for various languages using managed compiler versions.
JSONExport ist ein mehrsprachiger Codegenerator und JSON-Schema-Konverter, der JSON-Datenstrukturen in stark typisierte Quellcode-Klassen transformiert. Er dient als API-Response-Mapper, der JSON-Objekte in Data-Transfer-Objects konvertiert, um die Erstellung von Modellklassen zu automatisieren. Das Tool ist auf die Synthese mehrsprachiger Modelle spezialisiert, was es Benutzern ermöglicht, Datenmodelle über verschiedene Programmiersprachen hinweg unter Verwendung einer einzigen JSON-Eingabe zu definieren. Es generiert Klassen-Boilerplate, einschließlich Konstruktoren und Accessoren, und bietet eine Vorschau-Pipeline, um den resultierenden Quellcode vor dem Speichern zu überprüfen. Das Projekt deckt die Implementierung von Datenmodellen und die Generierung von Quellcode-Boilerplate durch einen template-basierten Ansatz ab, der JSON-Datentypen auf spezifische Sprachsyntax mappt.
Automates the creation of DTOs and class definitions across multiple target languages from a single JSON source.
Kaitai Struct ist ein Framework für deklarative Binärspezifikationen, das die automatisierte Parser- und Serializer-Generierung über mehrere Programmiersprachen hinweg ermöglicht. Es verwendet eine portable, domänenspezifische Sprache, um das Layout von Binärdateien und Netzwerkpaketen zu beschreiben, und konvertiert diese Spezifikationen in Quellcode zum Lesen und Schreiben binärer Daten. Das System ermöglicht sprachübergreifende Datenverarbeitung durch die Übersetzung einer einzigen strukturellen Definition in nativen Quellcode für Sprachen wie C++, C#, Go, Java, JavaScript, Python und Rust. Dieser Ansatz ermöglicht es, dieselbe Binärdatenspezifikation über verschiedene Plattformen hinweg zu implementieren, ohne die Parsing-Logik manuell neu schreiben zu müssen. Das Framework deckt die Modellierung und Verarbeitung binärer Daten ab, einschließlich der Fähigkeit, Lesezeiger für die Offset-Navigation zu verwalten und Datentransformationen wie Dekomprimierung und Entschlüsselung anzuwenden. Es bietet zudem Tools für das Debugging von Formatspezifikationen, um das Mapping zwischen Binärdatenlayouts und ihren deklarativen Beschreibungen zu validieren.
Generates native source code for multiple target languages from a single structural binary specification.
Luban ist eine Konfigurations-Toolchain für Spiele, die darauf ausgelegt ist, tabellenbasierte Daten in optimierte Binärformate und typsicheren Quellcode für mehrere Sprachen zu konvertieren. Sie fungiert als umfassende Suite für Konfigurationsvalidierung, Datenserialisierungs-Pipelines und Code-Generierung, um Datenkonsistenz über verschiedene Plattformen hinweg sicherzustellen. Das System verfügt über einen mehrsprachigen Code-Generator, der stark typisierte Datenklassen aus Schemas erstellt, wodurch die Notwendigkeit für Reflection entfällt. Es enthält einen Lokalisierungsmanager für den Export übersetzter Texte und Assets mit gebietsschemaspezifischem Patching sowie eine Serialisierungs-Pipeline, die strukturierte Quelldateien für den effizienten Netzwerktransfer in Binärdateien umwandelt. Die Toolchain bietet eine Konfigurationsvalidierungs-Engine zur Durchführung von referenziellen Integritätsprüfungen und Ressourcenpfad-Verifizierungen. Sie unterstützt zudem komplexe Datenmodellierung durch ein objektorientiertes Typsystem, das Datenvererbung und verschachtelte Strukturen innerhalb von Konfigurationsdateien ermöglicht.
Generates source code for a variety of target languages from a single configuration specification.