FlatBuffers - FlatBuffers
Эта статья содержит контент, который написан как Реклама.Октябрь 2019) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Оригинальный автор (ы) | Воутер ван Оортмерссен |
---|---|
изначальный выпуск | 17 июня 2014 г.[1] |
Стабильный выпуск | 1.12.0 / 12 марта 2020 г.[2] |
Репозиторий | |
Написано в | C ++ |
Операционная система | Android, Майкрософт Виндоус, Mac OS X, Linux |
Тип | формат и библиотека сериализации, IDL компилятор |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | Google |
FlatBuffers это бесплатно программное обеспечение библиотека реализация сериализация формат похож на Буферы протокола, Бережливость, Apache Avro, SBE, и Cap'n Proto, в первую очередь написано Воутер ван Оортмерссен и с открытым исходным кодом Google. Подобно Cap'n Proto и SBE, он поддерживает десериализацию с нулевым копированием, так что для доступа к сериализованным данным не требуется сначала копировать их в отдельную часть памяти, что делает доступ к данным в этих форматах намного быстрее, чем к данным в форматах, требующих более обширная обработка, например JSON, CSV, и во многих случаях буферы протокола. Однако по сравнению с другими форматами сериализации обработка FlatBuffers обычно требует больше кода, а некоторые операции невозможны (например, некоторые операции мутации).
FlatBuffers - популярный проект на GitHub, с 10228 звездами, 260 участниками, 1605 форками и 600 наблюдателями на GitHub по состоянию на 19.09.2018.[3]
FlatBuffers можно использовать в программном обеспечении, написанном на C ++, C #, C, Идти, Ява, JavaScript, PHP, Python, и Ржавчина. Компилятор схемы работает на Android, Майкрософт Виндоус, Mac OS X, и Linux,[3] но игры и другие программы, использующие FlatBuffers для сериализации, также работают во многих других операционных системах, включая iOS, Amazon с Fire OS, и телефон с операционной системой Виндоус.[4]
Ван Оортмерссен изначально разработал FlatBuffers для разработки игр и подобных приложений.[5][1]
Хотя FlatBuffers имеет свой язык определения интерфейса для определения данных, которые будут сериализованы с ним, он также поддерживает схемы, определенные в формате Protocol Buffers .proto.[6]
Пользователи
Некоторые известные пользователи FlatBuffers:
- Cocos2d-x популярная бесплатная библиотека для программирования двумерных игр использует FlatBuffers для сериализации всех своих игровых данных.[7]
- Facebook Клиент Android использует FlatBuffers для хранения на диске и связи с серверами Facebook. Ранее использовавшийся формат JSON работал плохо.[8]
Смотрите также
Рекомендации
- ^ а б Воутер ван Оортмерссен (2014-06-17). «FlatBuffers: библиотека сериализации с эффективным использованием памяти». Получено 2017-06-15.
- ^ "Релизы - google / flatbuffers". Получено 19 мая 2020 - через GitHub.
- ^ а б "GitHub - google / flatbuffers: эффективная библиотека сериализации памяти". GitHub. Получено 2018-09-19.
- ^ «FlatBuffers для единства». eXiin. 2015-09-21. Получено 2017-06-15.
Мы протестировали плоские буферы [sic] на всех основных мобильных платформах (iOS, Android, Amazon Os [sic], Windows Phone), на которых мы строим [,], и они работают очень хорошо.
- ^ "Документация по FlatBuffers". Получено 2017-06-21.
FlatBuffers - это эффективная кроссплатформенная библиотека сериализации для C ++, C #, C, Go, Java, JavaScript, PHP и Python. Первоначально он был создан в Google для разработки игр и других приложений, критичных к производительности.
- ^ Кентон Варда (17.06.2014). "Cap'n Proto, FlatBuffers и SBE". Получено 2017-06-15.
- ^ http://www.cocos2d-x.org/reference/native-cpp/V3.5/d7/d2d/namespaceflatbuffers.html
- ^ Джордж Се (31.07.2015). «Повышение производительности Facebook на Android с помощью FlatBuffers». Получено 2017-06-15.
Время загрузки истории из дискового кеша сокращено с 35 мс до 4 мс на историю. Выделение временной памяти уменьшено на 75 процентов. Время холодного старта улучшено на 10-15 процентов. Мы уменьшили размер хранилища на 15 процентов.