Ворчливый IT-дед

@vit_ded · Russian · active

Subscribers 1.3K tracking since 17 Oct
Reach per post (ERR) 47.9%632 avg views
Posting 1.6/week last 5 days ago
Reactions per 1K views 29.8 ❤ 👍 🔥

Who let the dogs out? Yaff! Если вам надоело греть воздух десериализацией протобуфов, а переписывать все ради FlatBuffers нет сил, этот пост для вас. Недавно Яндекс выложил в опенсорс исходники YaFF (Yet another Flat Format) - альтернативного wire формата для Protobuf, поддерживающего zero‑copy чтение. Для сильных духом есть статья на хабре - там автор рассказывает буквально всю подноготную и объясняет, почему иного пути нет. Но, вкратце, несколько важных тезисов таковы: • постоянная трансляция данных между хранилищем, рантаймом и аналитикой - дорого и неудобно (куча конвертеров и цпу-баунд операций); • нельзя забывать про эволюцию форматов ("добавить полюшко" превращается в кросс‑командный квест); • FlatBuffers - это не Protobuf без десериализации (нужно синхронизировать схемы, разные api, ручное перекладывание полей); • источником истины остаётся обычный.proto‑файл, интерфейсная и шаблонная совместимость с Protobuf (дешевое внедрение); • несколько стратегий хранения - flat layout для плотных данных, sparse layout для разреженных, dynamic сам подбирает оптимальный вариант; Мы привыкли воспринимать Protobuf‑экосистему как монолит: proto‑схема, wire format и парсинг. YaFF разделяет эти слои. Схемы остаются контрактом между командами и сервисами, а Protobuf‑like API остается привычным интерфейсом для разработчика. Сериализованное представление становится отдельным бэкендом, который можно выбирать под конкретную нагрузку. Это ли не чудо?

Views over time

02505007501K3 Jul 13:0517 Oct 13:378883 Jul 13:05: 0 views17 Oct 13:37: 888 views
Snapshots we took after posting.
WhenViews
3 Jul 2026, 13:050
17 Oct 2026, 13:37888

Who shared this post

Posts in other channels we index that link to this one. (Forwards with a hidden source can't be traced.)

Nobody yet.