Существует практичный способ получить хорошее сжатие, даже для очень маленьких строк (50 байт!) -
Если ваши значения чем-то похожи друг на друга - например, они представляют собой JSON-представления нескольких связанных классов объектов - вы можете предварительно вычислить словарь компрессора / декомпрессора на основе некоторого примера текста.
Звучит сложно, но на практике это просто - и еще проще с правильным кодом оболочки, чтобы справиться с этим.
Вот реализация Python:
https://github.com/internetarchive/openlibrary/blob/master/openlibrary/utils/compress.py
и вот оболочка для сжатия определенного класса строк: (короткие записи JSON)
https://github.com/internetarchive/openlibrary/blob/master/openlibrary/utils/olcompress.py
Одна загвоздка: чтобы сделать это эффективно, ваша библиотека сжатия должна поддерживать «клонирование» внутреннего состояния. (Библиотека Python делает это). Вы можете реализовать нечто подобное, предварительно добавив текст примера при сжатии, но это означает оплату дополнительных вычислительных затрат.
Спасибо за утешение за этот удивительный трюк.