Repolode
google

google/flatbuffers

Кроссплатформенная библиотека сериализации, позволяющая читать бинарные данные напрямую, без предварительного разбора или распаковки.

Open source альтернатива:Protocol Buffers

Звёзды
26,567
Форки
3,712
Открытые issues
333
Последний коммит
6 часов назад

Что это?

FlatBuffers — библиотека сериализации, рассчитанная на эффективное использование памяти. Данные хранятся в бинарном буфере, к которому можно обращаться на месте: приложения читают поля напрямую из сериализованных байтов, не десериализуя их предварительно в объекты. При изменении схем библиотека сохраняет обратную и прямую совместимость.

Опишите данные в файле схемы (.fbs), а затем запустите компилятор flatc, чтобы сгенерировать код доступа для нужных языков. В репозитории есть библиотеки времени выполнения и генераторы кода для C, C++, C#, Dart, Go, Java, JavaScript, Kotlin, Lua, PHP, Python, Rust, Swift, TypeScript и других языков.

Библиотека поддерживает Windows, macOS, Linux и Android, а также работает на любой платформе с актуальным компилятором C++ (C++11 или новее).

Ключевые возможности

  • 01Доступ к сериализованным данным напрямую, без этапа разбора или распаковки.
  • 02Генерация кода доступа для множества языков на основе одной схемы.
  • 03Поддержка прямой и обратной совместимости между версиями схемы.
  • 04Работа в Windows, macOS, Linux и Android.

Сценарии использования

  • Передача данных между сервисами или компонентами, написанными на разных языках.
  • Хранение бинарных данных, для которых важны быстрое чтение без выделения памяти, например в играх или встроенных системах.
  • Чтение больших сериализованных файлов с помощью отображения в память без полной загрузки.

Быстрый старт

  1. 1

    Настройте сборку flatc с помощью CMake

    cmake -G "Unix Makefiles"
  2. 2

    Скомпилируйте компилятор flatc

    make -j
  3. 3

    Создайте схему (.fbs); пример см. в samples/monster.fbs

  4. 4

    Сгенерируйте код для нужных языков на основе схемы

    ./flatc --cpp --rust monster.fbs

Что важно знать

  • В README не описана установка компилятора flatc через менеджер пакетов. Его необходимо собрать из исходного кода с помощью CMake и компилятора C++.

Темы

Частые вопросы

Что такое flatbuffers?
Кроссплатформенная библиотека сериализации, позволяющая читать бинарные данные напрямую, без предварительного разбора или распаковки. FlatBuffers — библиотека сериализации, рассчитанная на эффективное использование памяти. Данные хранятся в бинарном буфере, к которому можно обращаться на месте: приложения читают поля напрямую из сериализованных байтов, не десериализуя их предварительно в объекты. При изменении схем библиотека сохраняет обратную и прямую совместимость.
flatbuffers можно использовать бесплатно? Какая у него лицензия?
flatbuffers распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
flatbuffers всё ещё поддерживается?
Активно поддерживается. Последний коммит в flatbuffers — 21 окт. 2026 г..
Для чего можно использовать flatbuffers?
Передача данных между сервисами или компонентами, написанными на разных языках. Хранение бинарных данных, для которых важны быстрое чтение без выделения памяти, например в играх или встроенных системах. Чтение больших сериализованных файлов с помощью отображения в память без полной загрузки.
Как установить flatbuffers?
Настройте сборку flatc с помощью CMake: cmake -G "Unix Makefiles" Скомпилируйте компилятор flatc: make -j Создайте схему (.fbs); пример см. в samples/monster.fbs Сгенерируйте код для нужных языков на основе схемы: ./flatc --cpp --rust monster.fbs
Где скачать flatbuffers?
Исходный код и инструкции по установке — на GitHub: https://github.com/google/flatbuffers

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Современный и простой в использовании текстовый редактор для терминала, который поставляется одним статическим бинарным файлом без зависимостей и позиционируется как преемник nano.

29,7 тыс.1,4 тыс.GoMITОбновлён 2 часа назад

Кроссплатформенный GUI toolkit и API для приложений на Go, позволяющие создавать приложения для компьютеров и мобильных устройств на основе единой кодовой базы.

28,8 тыс.1,6 тыс.GoBSD-3-ClauseОбновлён 3 дня назад