metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2015-09-02 06:11 pm

Генераторы сериализаторов-десериализаторов.

Меня немного удивляет существование protocol buffers, и еще больше удивляет, когда кроме них изобретают еще и Apache Thrift, а потом еще и https://capnproto.org/ и https://google.github.io/flatbuffers/.

Все эти протоколы подразумевают, что система разрабатывается одной и той же командой (или двумя тесно взаимодействующими) с обоих сторон, что типы передаваемых меняются достаточно синхронно, т.е. что протокол за 2-3 итерации не превратится во что-нибудь вроде "у нас тут 100 опциональных полей на каждый случай жизни".

А вот генератора парсеров на случай "протокол дали ембеддеры-психи, засунув в 8 бит 2 флага и 2 поля по 3 бита с длиной дополнительных данных в пакете" или "обвязка протокол описана в виде ABNF в RFC, а в payload опять поселились эмбеддеры с бинарными форматами" я чего-то не видел.

[identity profile] dmitry shamov (from livejournal.com) 2015-09-03 08:27 am (UTC)(link)
И кстати расскажите почему протобуф туфта. Я как раз тут думал для одного поделия что лучше использовать....

[identity profile] metaclass.livejournal.com 2015-09-03 08:32 am (UTC)(link)
Оно не туфта, просто поддержка версионности в проектах у которых циклы выпуска новых версий клиентской и серверной части отличаются будет ломать мозг.
Ну и более новые протоколы умеют больше - контейнеры там всякие вроде map/list/set, и вроде чуть-чуть эффективнее.