stringtranslate.com

Плоские буферы

FlatBuffers — это бесплатная программная библиотека, реализующая формат сериализации, аналогичный Protocol Buffers , Thrift , Apache Avro , SBE и Cap'n Proto , изначально написанная Воутером ван Оортмерссеном и открытая Google . Она поддерживает десериализацию «с нулевой копией», так что доступ к сериализованным данным не требует предварительного копирования их в отдельную часть памяти. Это делает доступ к данным в этих форматах намного быстрее, чем к данным в форматах, требующих более обширной обработки, таких как JSON , CSV и во многих случаях Protocol Buffers. Однако по сравнению с другими форматами сериализации обработка FlatBuffers обычно требует большего количества кода, и некоторые операции невозможны (например, некоторые операции мутации).

Сериализованный формат позволяет осуществлять произвольный доступ к определенным элементам данных (например, к отдельным строковым или целочисленным свойствам) без разбора всех данных. В отличие от Protocol Buffers, который использует целые числа переменной длины , FlatBuffers кодирует целые числа в их собственном размере, что повышает производительность, но приводит к более длинным закодированным представлениям.

FlatBuffers можно использовать в программном обеспечении, написанном на C++ , C# , C , Go , Java , JavaScript , Kotlin , Lobster, Lua , PHP , Python , Rust , Swift и TypeScript . Компилятор схемы работает на Android , Microsoft Windows , macOS и Linux , [3] но игры и другие программы используют FlatBuffers для сериализации и во многих других операционных системах, включая iOS , Fire OS от Amazon и Windows Phone . [4]

Ван Оортмерссен изначально разработал FlatBuffers для разработки игр и подобных приложений. [5] [1]

Хотя FlatBuffers имеет собственный язык определения интерфейса для определения данных, которые будут сериализованы с его помощью, он также поддерживает схемы, определенные в формате Protocol Buffers .proto. [6]

Пользователи

Некоторые известные пользователи FlatBuffers:

Смотрите также

Ссылки

  1. ^ аб Воутер ван Оортмерссен (17 июня 2014 г.). «FlatBuffers: библиотека сериализации, эффективно использующая память» . Проверено 15 июня 2017 г.
  2. ^ "Выпуск 24.3.25". 26 марта 2024 г. Получено 23 апреля 2024 г.
  3. ^ "GitHub — google/flatbuffers: Библиотека сериализации с эффективным использованием памяти". GitHub . Получено 10.12.2020 .
  4. ^ "FlatBuffers for Unity". eXiin. 2015-09-21 . Получено 2017-06-15 . Мы протестировали flatbuffers [sic] на всех основных мобильных платформах (iOS, Android, Amazon Os [sic], Windows Phone), на которых мы работаем[,], и они работают довольно хорошо.
  5. ^ "FlatBuffers Documentation" . Получено 2017-06-21 . FlatBuffers — эффективная кроссплатформенная библиотека сериализации для C++, C#, C, Go, Java, JavaScript, PHP и Python. Первоначально она была создана в Google для разработки игр и других приложений, критичных к производительности.
  6. ^ Кентон Варда (2014-06-17). "Cap'n Proto, FlatBuffers и SBE" . Получено 2017-06-15 .
  7. ^ «Cocos2d-x: Справочник по пространству имен Flatbuffers».
  8. ^ Джордж Кси (2015-07-31). "Улучшение производительности Facebook на Android с помощью FlatBuffers" . Получено 2017-06-15 . Время загрузки истории из кэша диска сокращено с 35 мс до 4 мс на историю. Временное выделение памяти сокращено на 75 процентов. Время холодного старта улучшено на 10-15 процентов. Мы уменьшили размер хранилища на 15 процентов.