2 dépôts
Binary serialization formats that use unique identifiers or tags to map data fields without requiring explicit schema definitions.
Explore 2 awesome GitHub repositories matching data & databases · Tag-Based Binary Encodings. Refine with filters or upvote what's useful.
Protocol Buffers est un mécanisme neutre vis-à-vis du langage et indépendant de la plateforme pour sérialiser des données structurées. Il fournit une chaîne d'outils pilotée par schéma qui compile des définitions de données déclaratives en code source typé, permettant une communication cohérente et des contrats d'API fortement typés entre des services écrits dans différents langages de programmation. Le projet se distingue par un format binaire très efficace qui utilise un encodage basé sur des balises et une compression d'entiers à largeur variable pour minimiser la taille de la charge utile et la surcharge de traitement. Il prend en charge une gestion robuste des schémas évolutifs, permettant aux développeurs de mettre à jour les structures de données de manière incrémentale tout en maintenant la compatibilité ascendante et descendante. Ceci est soutenu par un système d'édition versionné qui gère les ensembles de fonctionnalités et la logique de sérialisation à travers les composants logiciels distribués. Au-delà de sa sérialisation binaire de base, le projet inclut des capacités pour la conversion JSON canonique avec validation de schéma, un contrôle granulaire de la visibilité des symboles et le suivi de la présence des champs pour distinguer les valeurs par défaut des valeurs non définies. Il fournit également des optimisations spécialisées, telles que la gestion de la mémoire basée sur des arènes pour les implémentations C++, afin d'améliorer les performances lors de la création et du nettoyage d'arbres de messages complexes.
Maps data fields using unique numeric identifiers, allowing parsers to efficiently skip unknown or unrecognized content.
Racket est un langage de programmation généraliste multi-paradigme de la famille Lisp, conçu pour la création de langages. Il fonctionne comme un atelier de langage, fournissant une plateforme pour concevoir et implémenter des langages de programmation personnalisés via un système flexible de macros et de modules. Le système se distingue en offrant une suite complète pour l'ingénierie sémantique, permettant la construction de sous-ensembles de langages spécialisés et de couches éducatives. Il inclut des outils pour la conception de langages personnalisés, tels que la génération de lexer et de parser, ainsi que la capacité de définir des règles d'expansion de module et une sélection de langage dynamique au moment de la lecture. Le projet fournit un environnement de développement intégré avec un éditeur intégré, un débogueur visuel et un gestionnaire de paquets logiciels. Sa surface de capacités s'étend à une bibliothèque standard généraliste couvrant le rendu graphique 2D, le traitement de données binaires, l'intégration SQL et de bases de données déductives, et la construction d'interfaces utilisateur graphiques. L'environnement prend en charge la compilation du code source en fichiers exécutables autonomes pour la distribution.
Determines the binary class for a data stream based on a leading tag or field value.