5 dépôts
Libraries designed to interpret and process complex binary file formats and legacy container structures.
Distinguishing note: Focuses on the low-level interpretation of binary structures, distinct from high-level data manipulation or UI components.
Explore 5 awesome GitHub repositories matching data & databases · Binary Data Parsers. Refine with filters or upvote what's useful.
SheetJS is a comprehensive library for parsing, manipulating, and generating complex spreadsheet file formats. It functions as a universal data processor that maps diverse binary, XML, and text-based file structures into a unified internal object model, allowing developers to create, read, and transform workbook data programmatically. The library distinguishes itself through a portable logic layer that provides a consistent execution environment across web browsers, server-side runtimes, and native desktop or mobile applications. By utilizing stream-based processing, it handles large files in
The library parses and writes legacy binary spreadsheet files by interpreting complex container formats and record structures to ensure accurate data preservation across older software versions.
Presto is a distributed SQL query engine designed for high-performance analytical processing across heterogeneous data sources. It functions as a data federation platform and massively parallel processing engine, allowing users to execute interactive queries against diverse storage systems without requiring data migration. By mapping remote metadata and structures to a unified relational namespace, it enables seamless cross-platform analysis through a standard SQL interface. The engine distinguishes itself through a pluggable connector architecture and a shared-nothing distributed processing
Provides specialized functions for concatenating, slicing, and measuring binary data sequences.
nom is a Rust parser combinator framework used to build complex parsers for binary and text data. It functions as an abstract syntax tree generator and a bit-level binary parser, allowing users to construct structured data by combining small, reusable parsing functions. The framework provides specialized support for zero-copy binary parsing, extracting data as slices from raw byte arrays to avoid memory allocations. It also includes a streaming data parser capable of processing partial input chunks from networks or files and signaling when additional input is required. The project covers a b
Processes binary formats using bit-level logic to extract specific data fields.
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.
Provides a domain-specific language for generating binary data parsers with backtracking and context-sensitivity.
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.
Automatically generates binary data parser source code for multiple languages from a declarative format specification.