Компактная библиотека декомпрессии для встроенного использования

В настоящее время мы создаем устройство для клиента, который будет получать блок данных (например, 5-10 КБ) с ПК. применение. Это немного упрощено, поэтому предположим, что данные необходимо передавать и распаковывать много, а не только один раз в год. Канал связи действительно очень медленный, поэтому мы хотели бы заранее сжать данные, передать их устройству и позволить ему распаковать данные во внутреннюю флэш-память. Само устройство, однако, работает на микроконтроллере, который работает не очень быстро и не имеет большого объема памяти. У него достаточно флэш-памяти для хранения результата, и он может распаковывать блок данных по мере его получения, но ему может не хватить ОЗУ для хранения всех сжатых или несжатых (или даже обоих!) Блоков данных. И конечно же у него нет операционной системы или другой роскоши.

Это означает, что нам нужен достаточно быстрый алгоритм распаковки, который не использует много памяти. Сжатие может быть медленным и некрасивым, поскольку мы делаем это на стороне ПК. Код C или .NET предпочтителен для сжатия, чтобы упростить задачу. Код распаковки должен быть на C, так как маловероятно, что у кого-то есть версия, оптимизированная для ASM для нашего контроллера.

Мы нашли LZO, который был бы почти идеальным для нас, но у него есть так называемая «бесплатная» лицензия (GPL ) по умолчанию, что делает его полностью непригодным для использования нашим клиентом. Автор говорит, что коммерческие лицензии доступны по запросу, но, к сожалению, в настоящее время он недоступен (по нетехническим причинам, как говорится в новостях на его сайте).

Я нашел несколько других библиотек, включая puff.c из zlib, Наличие нескольких посредников между клиентом и сервисом ставит под сомнение безопасность транспорта, поскольку эти посредники могут быть небезопасными. Следовательно, безопасность транспорта обычно используется только приложениями интрасети.

HTTPS - это один из вариантов безопасности транспорта. Как предыдущий абзац применяется к HTTPS? !!, HTTPS шифрует все на всем пути от начальной до конечной точки. Кроме того, каждое приложение электронной коммерции в мире использует HTTPS, как вы можете ограничить его приложениями во внутренней сети !!

Спасибо

5
задан Costa 22 September 2010 в 10:22
поделиться