#deflate #assets #macro #include

include-flate

include_bytes!/include_str!的编译时压缩和运行时惰性膨胀的变体

7个版本

0.3.0 2023年10月15日
0.2.0 2023年2月13日
0.1.4 2021年11月19日
0.1.3 2019年9月3日
0.1.2 2019年8月14日

312压缩类中排名

Download history 5112/week @ 2024-04-23 4186/week @ 2024-04-30 6116/week @ 2024-05-07 5167/week @ 2024-05-14 6594/week @ 2024-05-21 6367/week @ 2024-05-28 6557/week @ 2024-06-04 8483/week @ 2024-06-11 6993/week @ 2024-06-18 9240/week @ 2024-06-25 6149/week @ 2024-07-02 7158/week @ 2024-07-09 7218/week @ 2024-07-16 7978/week @ 2024-07-23 7480/week @ 2024-07-30 7188/week @ 2024-08-06

30,722每月下载量
用于101个crate (14个直接使用)

Apache-2.0

4MB
71 代码行

include-flate

!CI crates.io docs.rs

include_bytes!/include_str!的编译时压缩和运行时惰性膨胀的变体。

为什么?

include_bytes!/include_str!非常适合将资源嵌入可执行文件/库中,而不涉及维护资源管理器的复杂后勤。然而,它们以原样复制到工件中,导致二进制文件大小不必要地增大。此库自动压缩资源,并在运行时惰性解压缩,允许二进制文件体积更小。

然而,这不可避免地会导致浪费RAM来存储压缩和解压缩的数据,如果数据过大,这可能会不理想。如果二进制文件涉及太多不需要始终保留在RAM中的资源,则仍需要实际安装程序。

警告

此库独立压缩包含的数据。通常,将整个输出二进制文件一起压缩(例如,分发.exe.gz)比独立压缩更有效。此外,压缩算法通常通过处理原始输入来生成更小的工件,而不是处理已压缩的输出。#[cfg_attr]可能有助于有条件地使用压缩或直接数据包含。

依赖项

~2.3–3MB
~51K SLoC