LibLZF для QNX4Перевод с английского с дополнениями, ссылка на оригинал ниже.ОписаниеLibLZF — малюсенькая библиотека сжатия данных, состоящая всего лишь из двух .c и двух .h файлов. Она очень проста для использования в своих собственных программах. Используется быстрый алгоритм сжатия, написанный на переносимом C.
Немаловажна и свобода использования библиотеки. В отличии от большинства других библиотек сжатия данных, распространяющихся под лицензией GPL, эта библиотека использует лицензию BSD типа, так что Вы можете свободно включать её в свои программы.
Особенности - Малый размер кода (менее 500 строк с учётом заголовочных файлов и документации).
- Очень высокая скорость. При сжатии она сравнимая со скоростью копирования, а при распаковке (без оптимизации) равна скорости работы memcpy().
- Невысокий коэффициент сжатия - следует ожидать 40-50% сжатия для обычных бинарных данных.
- Простота в использовании (всего две функции, никаких дополнительных указаний).
- Высокая переносимость (написана на C).
- Легко настраиваемая по скорости работы и степени сжатия. Рассмотрите файл lzfP.h для настройки liblzf под Ваши требования. Порождаемые сжатые блоки могут быть распакованы любой версией liblzf независимо от параметров сжатия.
- Свободна в использовании (лицензия BSD типа).
- На CPAN доступен perl-интерфейс (Compress::LZF).
ПрименениеБиблиотека
LibLZF идеальна для следующих применений:
-
Быстрое сжатие в реальном времени, где liblzf может сократить количество операций ввода-вывода без слишком большой загрузки процессора.
-
Блочное сжатие. Если у Вы работаете с регулярными блоками данных (IP пакеты, данные о состоянии и т.п.), то liblzf идеальна для уменьшения размера блоков при очень низких затратах, так как liblzf практически не тратит процессорное время на современных процессорах.
Доступность