Есть несколько отличных библиотек для десериализации двоичных форматов. Мне очень нравится декларативный подход kaitai и подход nom, использующий Rust.
Однако я не знаю хороших подходов к сериализации двоичных форматов.
Например, у вас часто бывает так, что вам нужно записать длину сообщения прямо в заголовок сообщения, но на самом деле вы не знаете точную длину сообщения в этот момент, потому что она зависит от многих полей, которые находятся ниже по потоку от заголовка. И иногда вам также приходится иметь дело с выравниванием заполнения, что может быть громоздким.
Знаете ли вы какие-либо решения подобных проблем?