Есть запуск! 🚀
Я безумно рад поделиться новостью: мы сегодня официально выложили в опенсорс YaFF (Yet another Flat Format) - библиотеку, которая реализует zero-copy wire-формат в Protobuf 🎉🎉🎉 Звучит не слишком понятно, да? :)
Если прямо очень коротко, то протобуф - это общепринятый опенсорсный формат обмена данными между сервисами. Объекты из памяти он упаковывает в бинарный формат для передачи по сети, этот процесс называется сериализацией. Когда данные передали, из них нужно снова восстановить объекты - это десериализация. В высоконагруженных сервисах типа рекламы (миллионы объектов в секунду, помноженные на количество серверов) десериализация отъедает 10-20% CPU, которые пригодились бы для более полезных задач.
YaFF встраивается в экосистему Protobuf и заменяет бинарный формат таким образом, что данные можно читать напрямую без десериализации (и без соответствующей нагрузки на CPU) - это и называется zero-copy. Если хочется преисполниться, то вот лонгрид на хабре https://habr.com/ru/companies/yandex/articles/1047638/
Моя роль в этом проекте была в основном заводить тикеты и писать в личку исполнителям "я там завел тикет, глянь пожалуйста". Ну и еще ревьюить бесконечное количество текстов. Но все лавры нужно отдать Дане Гавриловскому, который во-первых собственно написал эту библиотеку, а во-вторых проделал колоссальную работу по допиливанию ее для опенсорса. Каким-то образом успев при этом запилить статью на хабр.
Релизом эта история не заканчивается, наоборот всё только начинается! Уже есть роадмап по новым фичам и поддержке других языков помимо C++. И будем очень рады, если вы попробуете использовать библиотеку в своих проектах или хотя бы просто накидаете нам развивающей обратной связи. А, да, у нас также есть собственный сайт yaff.tech!
Stay tuned 😎
Post #228
316

- ❤ 11
- 🔥 7
- 🎉 6