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 压缩

Download history 157/week @ 2024-05-10 28/week @ 2024-05-17 5/week @ 2024-05-24 1/week @ 2024-06-07 216/week @ 2024-07-05 29/week @ 2024-07-12 310/week @ 2024-07-26 30/week @ 2024-08-02

每月411次下载

MIT/Apache

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-2.0许可证所定义的任何贡献,应按上述方式双许可,而无需任何额外的条款或条件。

依赖项

~2–12MB
~146K SLoC