#解压缩 #ucl #api-bindings #nrv

sys ucl-sys

Rust 的 UCL 绑定

1 个不稳定版本

0.1.1 2022年3月9日
0.1.0 2022年3月9日

#5#ucl

GPL-2.0-or-later

1.5MB
24K SLoC

Assembly 7K SLoC // 0.4% comments Shell 5K SLoC // 0.1% comments M4 5K SLoC // 0.2% comments GNU Style Assembly 3.5K SLoC // 0.3% comments C 2K SLoC // 0.3% comments Batch 1K SLoC Rust 104 SLoC Automake 65 SLoC // 0.3% comments

包含 (autotools obfuscated code, 1MB) ucl-1.03/configure, (ELF 可执行文件/库, 1KB) ucl-1.03/asm/i386/obj/elf32/cpuid.o, (ELF 可执行文件/库, 1KB) ucl-1.03/asm/i386/obj/elf32/crc_asm.o, (ELF 可执行文件/库, 1KB) ucl-1.03/asm/i386/obj/elf32/crcs_asm.o, (ELF 可执行文件/库, 1KB) ucl-1.03/asm/i386/obj/elf32/n2b_d_f1.o, (ELF 可执行文件/库, 1KB) ucl-1.03/asm/i386/obj/elf32/n2b_d_f2.o 等等,共 55 项.

ucl-sys

UCL 库的低级 FFI 绑定。

摘要

UCL 是一个用 ANSI C 编写的可移植无损数据压缩库。

UCL 实现了多种压缩算法,在保证极快解压的同时,实现了优异的压缩比。解压不需要额外的内存。

UCL 在 GNU 通用公共许可证 (GPL) 的条款下发行。

概述

UCL 实现了以下特性的多种算法

  • 解压简单且极快。
  • 不需要解压内存。
  • 解压器可以压缩到少于 200 字节的代码。
  • 包括用于生成预压缩数据的压缩级别,以实现优异的压缩比。
  • 允许在压缩器中以速度代价进行额外的压缩。解压器的速度不会降低。
  • 算法是线程安全的。
  • 算法是无损的。

UCL 支持原地解压。

设计标准

UCL 的主要设计目标是实现极高的解压速度,同时实现优异的压缩比。几乎所有应用程序都应能实现实时解压。使用优化过的 i386 汇编代码实现的 NRV2B 解压器运行速度约为 memcpy() 的五分之一——对于许多文件来说甚至更快。

可移植性

UCL 的解压器应在任何系统上工作——它们甚至可以被移植到 8 位处理器,如 Z-80 或 6502。

UCL 的压缩器目前需要至少 32 位整数。虽然将它们移植到更受限的环境(如 16 位 DOS)在理论上应不太费力,但在此阶段这并不被视为重要。

UCL 库的版权所有者是 Markus Franz Xaver Johannes Oberhumer,版权所有 (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 [email protected]

UCL 库在 GNU 通用公共许可证 (GPL) 的条款下发行。请参阅文件 COPYING。

对于不愿接受 GNU 通用公共许可证的商业和其他应用,可以通过联系作者获取特殊许可证。

依赖关系

~0–1.8MB
~34K SLoC