5 dépôts
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 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é.
Transforms schema definitions into source code for various languages using managed compiler versions.
JSONExport est un générateur de code multi-langage et un convertisseur de schéma JSON qui transforme les structures de données JSON en classes de code source fortement typées. Il sert de mappeur de réponse API, convertissant les objets JSON en objets de transfert de données (DTO) pour automatiser la création de classes de modèle. L'outil se spécialise dans la synthèse de modèles multi-langages, permettant aux utilisateurs de définir des modèles de données dans différents langages de programmation en utilisant une seule entrée JSON. Il génère le boilerplate de classe, incluant les constructeurs et les accesseurs, et fournit un pipeline de prévisualisation pour examiner le code source résultant avant qu'il ne soit enregistré. Le projet couvre l'implémentation de modèles de données et la génération de boilerplate de code source via une approche basée sur des modèles qui mappe les types de données JSON à une syntaxe de langage spécifique.
Automates the creation of DTOs and class definitions across multiple target languages from a single JSON source.
Kaitai Struct est un framework pour la spécification binaire déclarative qui fournit une génération automatisée d'analyseurs et de sérialiseurs sur plusieurs langages de programmation. Il utilise un langage portable spécifique au domaine pour décrire la mise en page des fichiers binaires et des paquets réseau, convertissant ces spécifications en code source pour la lecture et l'écriture de données binaires. Le système permet le traitement de données multi-langages en traduisant une définition structurelle unique en code source natif pour des langages incluant C++, C#, Go, Java, JavaScript, Python et Rust. Cette approche permet à la même spécification de données binaires d'être implémentée sur différentes plateformes sans réécrire manuellement la logique d'analyse. Le framework couvre la modélisation et le traitement des données binaires, y compris la capacité de gérer des pointeurs de lecture pour la navigation par offset et d'appliquer des transformations de données telles que la décompression et le déchiffrement. Il fournit également des outils pour le débogage de spécification de format afin de valider le mappage entre les mises en page de données binaires et leurs descriptions déclaratives.
Generates native source code for multiple target languages from a single structural binary specification.
Luban est une chaîne d'outils de configuration de jeu conçue pour convertir des données basées sur des feuilles de calcul en formats binaires optimisés et en code source typé pour plusieurs langages. Il fonctionne comme une suite complète pour la validation de configuration, les pipelines de sérialisation de données et la génération de code afin d'assurer la cohérence des données à travers différentes plateformes. Le système dispose d'un générateur de code multi-langage qui produit des classes de données fortement typées à partir de schémas, éliminant le besoin de réflexion. Il inclut un gestionnaire de localisation pour exporter du texte traduit et des assets avec des correctifs spécifiques à la locale, ainsi qu'un pipeline de sérialisation qui transforme les fichiers sources structurés en binaires pour un transfert réseau efficace. La chaîne d'outils fournit un moteur de validation de configuration pour effectuer des vérifications d'intégrité référentielle et de vérification des chemins de ressources. Elle supporte en outre la modélisation de données complexe via un système de types orienté objet qui permet l'héritage de données et des structures imbriquées au sein des fichiers de configuration.
Generates source code for a variety of target languages from a single configuration specification.