Я пытаюсь распаковать блок памяти, но я не знаю его исходного несжатого размера, однако я знаю максимальный размер этого исходного блока памяти.
Есть ли способ распаковать с LZ4, не зная исходного несжатого размера?
Краткий рассказ-длинный: я сериализую кучу переменных в поток строк, используя стороннюю библиотеку под названием Cereal. Cereal будет сериализовать ваши данные в строковый поток, используя «переносимый двоичный формат», что означает, что порядок байтов сохраняется и даже преобразуется в таковой на хост-машинах во время десериализации, если это необходимо. Затем поток строк сжимается с помощью LZ4 и передается на удаленный компьютер для распаковки и десериализации.
Моя проблема в том, что LZ4 будет выводить блок памяти сжатых данных и целое число, определяющее размер сжатых данных. Для распаковки вам нужен сжатый размер и исходный размер, и я отправляю только сжатый блок данных на удаленные машины.
Итак, есть ли способ распаковать блок данных с помощью LZ4, не зная его исходный сжатый размер? По сути, «начните декомпрессию, когда у вас закончатся данные, и вы закончили»