Генераторы сериализаторов-десериализаторов.
Меня немного удивляет существование protocol buffers, и еще больше удивляет, когда кроме них изобретают еще и Apache Thrift, а потом еще и https://capnproto.org/ и https://google.github.io/flatbuffers/.
Все эти протоколы подразумевают, что система разрабатывается одной и той же командой (или двумя тесно взаимодействующими) с обоих сторон, что типы передаваемых меняются достаточно синхронно, т.е. что протокол за 2-3 итерации не превратится во что-нибудь вроде "у нас тут 100 опциональных полей на каждый случай жизни".
А вот генератора парсеров на случай "протокол дали ембеддеры-психи, засунув в 8 бит 2 флага и 2 поля по 3 бита с длиной дополнительных данных в пакете" или "обвязка протокол описана в виде ABNF в RFC, а в payload опять поселились эмбеддеры с бинарными форматами" я чего-то не видел.
Все эти протоколы подразумевают, что система разрабатывается одной и той же командой (или двумя тесно взаимодействующими) с обоих сторон, что типы передаваемых меняются достаточно синхронно, т.е. что протокол за 2-3 итерации не превратится во что-нибудь вроде "у нас тут 100 опциональных полей на каждый случай жизни".
А вот генератора парсеров на случай "протокол дали ембеддеры-психи, засунув в 8 бит 2 флага и 2 поля по 3 бита с длиной дополнительных данных в пакете" или "обвязка протокол описана в виде ABNF в RFC, а в payload опять поселились эмбеддеры с бинарными форматами" я чего-то не видел.
no subject
Ну да, и перечисленные условия - довольно частая и обыденная вещь, когда разным частям одной системы надо общаться. Для таких ситуаций и делаются.
В эрланге и эликсире весьма удобно сделан парсинг таких бинарных данных. А в других языках как-то ничего сразу на ум не приходит, да. Все привыкли текст парсить.
no subject
no subject
no subject
А если надо с чем то снаружи общаться, то все равно ничего кроме json нет
no subject
http://thesz.livejournal.com/672967.html
Разборщики не так уж беспомощны, надо сказать.