Независимый от языка RPC-фреймворк с генератором кода для создания совместимых клиентов и серверов на множестве языков программирования.
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
Настройте сборку flatc с помощью CMake
cmake -G "Unix Makefiles" - 2
Скомпилируйте компилятор flatc
make -j - 3
Создайте схему (.fbs); пример см. в samples/monster.fbs
- 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 обновляется ежедневно.
Похожие проекты
Фреймворк на базе Node.js и Chromium для создания кроссплатформенных настольных приложений на JavaScript, HTML и CSS.
Фреймворк на Go для создания кроссплатформенных десктопных приложений с веб-интерфейсом на React, Vue, Svelte и других фреймворках.
Современный и простой в использовании текстовый редактор для терминала, который поставляется одним статическим бинарным файлом без зависимостей и позиционируется как преемник nano.
Кроссплатформенный GUI toolkit и API для приложений на Go, позволяющие создавать приложения для компьютеров и мобильных устройств на основе единой кодовой базы.
Библиотека форматирования C++ — быстрая и типобезопасная альтернатива C stdio и iostreams с поддержкой C++20 std::format.