Наконец-то зарелизил спеку VaryPack - новый, простой, гибкий, шустрый и компактный формат бинарной сериализации произвольных данных.

TS библиотека в MAM - $mol_vary, в NPM - mol_vary. Это всего 600 строчек кода, которые легко портировать на любой другой язык.
? Киллер фичи
Дедупликация. Строки, числа, шейпы объектов (упорядоченные списки имён полей) не дублируются, благодаря встроенной поддержке ссылок. Другие форматы этого достигают только через расширения, ломающие совместимость между библиотеками.
Расширяемость поддержимаемых типов. Из коробки VaryPack уже поддерживает огромные целые, ссылки, бинарники, а $mol_vary ещё и словари, и множества, и таймштампы, и даже DOM! Но довольно легко добавить поддержку и своих типов данных, ни с кем это не согласовывая - маппинг происходит по совпадению шейпов, которые сериализуются вместе с объектами. Другие форматы вынуждены вести централизованные реестры расширений и диапазоны идентификаторов, где творится дикий запад.
Прямая и обратная совместимости. Любой VaryPack декодер сможет распаковать данные, даже если не поддерживает те или иные кастомные типы данных (будет их представление через поддеживаемые типы). Расширения других форматов таким похвастаться не могут.
⁉️ Внимание, вопрос
Пока на VaryPack ещё никто не завязался есть возможность безболезненно его менять. Так что гляньте спеку, попробуйте поиграться со своими данными. Если будет не хватать какой-то фичи - дайте знать. Подумаем, можно ли поддержать и её.
Например, VaryPack сохраняет ссылочную структуру, если она не образует циклов. Можно было бы поддержать и произвольные графы связей между объектами. Но стоит ли это делать ценой усложнения и замедления кода?
Комментарии (6)

ColdPhoenix
14.11.2025 06:54Забавно, что на хабре вы размер округлили вниз, а на NPM/Github округлили вверх.
Ну и сравнивать совместимость пока у вашего стандарта ровно одна реализация это кощунство ИМХО.
artptr86
Не совсем понял, откуда бенчмарк берёт размер библиотеки 3,70 кБ, когда web.js весит 29 кБ, а сжато передаётся порядка 6 кБ. Аналогичная картина и для конкурентов.
nin-jin Автор
https://bundlephobia.com/