13个版本
0.2.4 | 2024年7月10日 |
---|---|
0.2.3 | 2024年7月10日 |
0.2.2 | 2024年5月12日 |
0.2.1 | 2023年11月28日 |
0.1.13 | 2022年7月5日 |
#124 in 压缩
每月411次下载
59KB
627 代码行
minicdn
静态文件,为了效率进行压缩。目前,需要Rust nightly。
示例
在这个示例中,我们使用宏在编译时评估相对于源文件的路径。在调试模式下,文件将在运行时加载。在发布模式下,文件将嵌入(并相应压缩)到编译的二进制文件中。
let files: MiniCdn = release_include_mini_cdn!("./path/to/public/files/");
let html = files.get("index.html").unwrap();
// 32 byte digest of the file.
let _ = html.etag;
// Last modified time as string, in UNIX seconds.
let _ = html.last_modified;
// MIME type string.
let _ = html.mime;
// Raw HTML bytes.
let _ = html.contents;
// HTML compressed with Brotli, if it is more efficient.
let _ = html.contents_brotli;
// HTML compressed with GZIP, if it is more efficient.
let _ = html.contents_gzip;
let image = files.get("images/foo.png").unwrap();
// Raw PNG bytes.
let _ = image.contents;
// WebP bytes (if WebP is more efficient).
let _ = image.contents_webp;
所有字段(除了contents
)默认禁用,但可以通过相应的功能标志打开。
请参阅文档了解其他选项,例如在运行时进行压缩。
配置文件
支持使用配置文件自定义压缩的实验性支持。如果您有一个名为some_image.png
的图像,您可以在名为some_image.minicdn
的新文件中放置以下内容以调整WebP质量级别。
webp_quality = 75.0
以下选项可用:
brotli_level
(1-11,默认9)brotli_buffer_size
(字节,默认4096)brotli_large_window_size
(默认20)gzip_level
(1-9,默认9)webp_quality
(0-100或"无损",默认90)
许可证
在以下任一许可证下发行:
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您有意提交以包含在作品中并由您定义的Apache-2.0许可证所定义的任何贡献,应按上述方式双许可,而无需任何额外的条款或条件。
依赖项
~2–12MB
~146K SLoC