awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
google avatar

google/flatbuffers

0
View on GitHub↗
25,558 stars·3,497 forks·C++·apache-2.0·13 vuesflatbuffers.dev↗

Flatbuffers

FlatBuffers is a cross-platform serialization library designed for performance-critical applications that require efficient, zero-copy data access. By organizing data in a structured binary format, it allows applications to read and write complex data structures directly from memory-mapped buffers without the need for intermediate parsing or temporary object allocation.

The project distinguishes itself through a schema-driven approach that balances high-performance access with long-term data evolution. It utilizes a unique memory layout featuring relative offsets and inline fixed-size structures, which ensures that data remains position-independent and cache-friendly. To maintain compatibility as data requirements change, the system employs a table-based format that allows for the addition or deprecation of fields without breaking existing readers. Furthermore, it supports polymorphic data through union-type tagged offsets, providing a flexible yet strictly typed mechanism for handling varied data structures.

Beyond its core serialization capabilities, the project provides a comprehensive ecosystem for cross-language interoperability. It includes a schema compiler that generates native source code for a wide range of programming languages, enabling type-safe access to binary data across disparate systems. The library also offers dynamic, schema-less serialization options for scenarios requiring greater flexibility, alongside robust tooling for data format conversion and build system integration.

The project is distributed with extensive support for major build systems and package managers, facilitating integration into diverse development environments. Its documentation and tooling support the entire lifecycle of data contract development, from initial schema definition to cross-platform deployment.

Features

  • Data Serialization Formats - FlatBuffers defines flexible data objects using tables that support field addition and deprecation to maintain forward and backward compatibility across different versions of your data.
  • Code Generators - FlatBuffers produces source code in multiple programming languages from schema definitions to simplify data serialization and deserialization across different parts of your application.
  • Schema Definition Languages - FlatBuffers specifies namespaces, types, enums, and metadata attributes for structured data serialization using a formal grammar that defines the syntax for your data.
  • Binary Serialization Formats - FlatBuffers enables reading and writing binary data buffers in Dart by generating classes from schemas and using provided accessors for high-performance field retrieval.
  • Zero-Copy Data Access - Storing and retrieving complex data structures with minimal memory overhead and zero-copy access for performance-critical applications.
  • Zero-Copy Data Access Libraries - A memory-mapping approach that allows applications to read serialized data directly from buffers without intermediate parsing or object allocation.
  • Binary Data Accessors - Reading specific fields from large binary buffers without the need for full deserialization or temporary object allocation.
  • Cross-Language Data Protocols - A binary data format that enables efficient, zero-copy access to structured data across multiple programming languages and hardware architectures.
  • Data Encoding Schemes - FlatBuffers encodes union types by combining an enumeration constant for the selected choice with a relative offset to the actual data element.
  • Serialization Libraries - FlatBuffers enables reading and writing binary data structures in Kotlin by generating classes from schemas and accessing fields as native properties for type-safe serialization.
  • Schema Generators - FlatBuffers creates binary schema files from source definitions to facilitate runtime reflection or to provide necessary metadata for custom code generators and plugins.
  • Code Generators - FlatBuffers produces C source files from schema definitions using a compiler that supports offline generation, data verification, and high-performance parsing.
  • Binary Compatibility Strategies - Uses a vtable-like structure within binary buffers to allow adding or deprecating fields without breaking existing data readers.
  • Data Interoperability - Sharing structured data between different programming languages and platforms using a unified binary format and generated source code.
  • Memory Layout Optimizations - Stores primitive data types directly within parent structures to minimize memory overhead and maximize cache locality during access.
  • Databases & Data - Memory-efficient serialization library
  • Serialization - Memory-efficient serialization library.
  • Serialization and Formats - Efficient cross-platform serialization library.
  • Bibliothèques de sérialisation - Memory-efficient serialization library.
  • Data Serialization - Memory-efficient serialization library for performance-critical applications.
  • Serialization - Memory-efficient serialization without unpacking or parsing.
  • Serialization and I/O - Memory-efficient serialization without unpacking or parsing.
  • Serialization Libraries - Efficient cross-platform serialization library.
  • Serialization Protocols - Memory-efficient serialization library for performance-sensitive applications.
  • Schema-Based Code Generators - A command-line tool that transforms formal data definitions into native source code for type-safe serialization and deserialization.
  • Data Structure and Type Helpers - FlatBuffers enables reading and writing binary data in C by generating native classes from schemas and accessing fields through standard properties or pre-allocated objects.
  • Position-Independent Data Formats - Organizes data structures using relative pointers and offsets to ensure buffers remain position-independent and easily shareable.
  • Schema-Based Serialization - Defining formal data contracts to generate type-safe interfaces for efficient communication between client and server components.
  • Data Search Utilities - FlatBuffers performs efficient dictionary lookups in Java by sorting table vectors by a key field and executing binary searches to retrieve elements without unpacking structures.
  • Serialization Optimization Utilities - FlatBuffers allows developers to reduce memory footprint and improve access performance by choosing efficient container types, minimizing bit widths, and using blobs for large arrays.
  • Remote Procedure Call Frameworks - FlatBuffers builds remote procedure call services in C++ by generating service stubs from schemas and using specialized message builders for efficient data transfer.
  • Reflection Frameworks - FlatBuffers allows C++ developers to navigate and modify binary data at runtime without prior schema knowledge by loading binary definitions and using reflection functions.
  • Schema Evolution Strategies - Managing long-term data storage by evolving schemas through field addition and deprecation without breaking existing application logic.
  • Data Exchange Standards - A standardized way to exchange structured information between disparate systems by ensuring consistent memory layout and binary compatibility.
  • Data Format Converters - FlatBuffers transforms data files between binary serialized formats and human-readable JSON representations by applying schema definitions to ensure structural accuracy and validation.
  • Build Systems - FlatBuffers provides Bazel support to manage build and test environments, enabling multi-language compilation and consistent configurations across continuous integration pipelines.
  • C & C++ Ecosystem - FlatBuffers provides a builder pattern for constructing and reading schema-less binary buffers in C++, supporting maps, vectors, and automatic type conversion during data retrieval.
  • Java Ecosystem - FlatBuffers provides a builder pattern for constructing and reading schema-less binary buffers in Java, supporting maps, vectors, and automatic type conversion during data retrieval.
  • Memory Management & GC - FlatBuffers handles memory allocation failures in Rust by using builder methods that return results or by implementing custom allocators for specialized environments.
  • Type System Tools - FlatBuffers processes binary schema files at runtime in C using generated code to enable dynamic inspection and manipulation of complex data structures.
  • Numerical Libraries - FlatBuffers maps scalar vectors directly to high-performance numerical arrays in Python to accelerate data processing when handling large nested structures.
  • Polymorphic Data Encodings - Encodes polymorphic data by pairing an enumeration constant with a relative offset to identify and locate the specific variant.

Historique des stars

Graphique de l'historique des stars pour google/flatbuffersGraphique de l'historique des stars pour google/flatbuffers

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Flatbuffers

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Flatbuffers.
  • capnproto/capnprotoAvatar de capnproto

    capnproto/capnproto

    13,089Voir sur GitHub↗

    CapnProto is a zero-copy serialization framework and remote procedure call system. It serves as a C++ communication library providing a schema-based data interchange format that eliminates the need to encode or decode data before reading it from memory. The system enables high-performance data serialization and low-latency network communication. It supports cross-language data exchange by using a defined schema to ensure consistent binary representation across different platforms. The framework provides tools for implementing remote procedure calls, allowing functions to be invoked on a remo

    C++
    Voir sur GitHub↗13,089
  • golang/protobufAvatar de golang

    golang/protobuf

    10,074Voir sur GitHub↗

    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

    Go
    Voir sur GitHub↗10,074
  • apache/foryAvatar de apache

    apache/fory

    4,234Voir sur GitHub↗

    Fory is a cross-language serialization framework and binary data serializer designed to convert complex object graphs into a compact binary format for high-performance data exchange. It includes an IDL-based schema compiler to transform interface definition language files into type-safe native data models and a schema evolution manager to maintain forward and backward compatibility. The project features a zero-copy data access layer that allows reading specific fields from binary rows without deserializing the entire object. It supports dual-mode serialization, enabling a toggle between a por

    Javacompressioncppcross-language
    Voir sur GitHub↗4,234
  • real-logic/simple-binary-encodingAvatar de real-logic

    real-logic/simple-binary-encoding

    3,458Voir sur GitHub↗

    Simple Binary Encoding (SBE) - High Performance Message Codec

    Java
    Voir sur GitHub↗3,458
Voir les 30 alternatives à Flatbuffers→

Questions fréquentes

Que fait google/flatbuffers ?

FlatBuffers is a cross-platform serialization library designed for performance-critical applications that require efficient, zero-copy data access. By organizing data in a structured binary format, it allows applications to read and write complex data structures directly from memory-mapped buffers without the need for intermediate parsing or temporary object allocation.

Quelles sont les fonctionnalités principales de google/flatbuffers ?

Les fonctionnalités principales de google/flatbuffers sont : Data Serialization Formats, Code Generators, Schema Definition Languages, Binary Serialization Formats, Zero-Copy Data Access, Zero-Copy Data Access Libraries, Binary Data Accessors, Cross-Language Data Protocols.

Quelles sont les alternatives open-source à google/flatbuffers ?

Les alternatives open-source à google/flatbuffers incluent : capnproto/capnproto — CapnProto is a zero-copy serialization framework and remote procedure call system. It serves as a C++ communication… golang/protobuf — This project is a Protocol Buffers implementation for Go, providing a binary serialization framework to convert native… apache/fory — Fory is a cross-language serialization framework and binary data serializer designed to convert complex object graphs… real-logic/simple-binary-encoding — Simple Binary Encoding (SBE) - High Performance Message Codec. esotericsoftware/kryo — Kryo is a Java binary serialization framework and object cloning library used to convert Java objects into a compact… gogo/protobuf — This project is a Protocol Buffers Go compiler and code generation framework that translates schema definitions into…