HeadlinesBriefing favicon HeadlinesBriefing.com

Бинарная упаковка сжимает JSON на 80%

Hacker News •
×

Разработчик создал бинарный язык схем, который сжимает полезную нагрузку JSON на 80%. Начиная с базовой ASCII-кодировки, где каждый символ занимает один байт, они осознали, что числа, хранимые в виде строк, тратят пространство—'104' занимает 3 байта вместо 1. Решение использует структуру [TYPE][LENGTH][DATA], с битом продолжения в заголовке, позволяющим кодировку переменной длины. Строки становятся [TYPE=1][LENGTH=11][DATA], в то время как целые числа используют [TYPE=0][DATA=123]. Для значений больше 127 кодирование varint использует MSB как флаг продолжения, комбинируя 7-битные сегменты в little-endian формате. Этот подход эффективно обрабатывает и строки, и целые числа, минимизируя накладные расходы через битовые методы оптимизации.