#文件扩展名 #MIME #扩展名 #文件格式 #文件格式

new_mime_guess

一个将 MIME 类型与文件扩展名关联的简单库

9 个稳定版本

4.0.4 2024 年 8 月 7 日
4.0.1 2022 年 2 月 18 日
4.0.0 2021 年 11 月 24 日
3.0.2 2021 年 11 月 24 日
2.1.0 2021 年 4 月 28 日

#61 in 文件系统

Download history 3848/week @ 2024-05-03 4338/week @ 2024-05-10 4177/week @ 2024-05-17 4341/week @ 2024-05-24 3886/week @ 2024-05-31 4116/week @ 2024-06-07 3737/week @ 2024-06-14 3912/week @ 2024-06-21 3658/week @ 2024-06-28 4582/week @ 2024-07-05 3905/week @ 2024-07-12 4166/week @ 2024-07-19 3701/week @ 2024-07-26 3851/week @ 2024-08-02 4319/week @ 2024-08-09 2727/week @ 2024-08-16

15,503 每月下载量
用于 29 个库(14 个直接使用)

MIT 许可证

91KB
2K SLoC

new_mime_guess

Crates.io Unsafe forbidden Build status

该项目是 mime_guess 的分支。它添加了对许多新文件格式的支持,使用 Rust 的 2018 版本,并修复了 mime_guess 中当前禁用的 phf-map 功能。还有一些其他的小变化,但创建它的主要原因是修复我在编写 fif 时发现的 MIME/扩展名关联的一些差距/问题。

截至 4.0 版本,最低支持的 Rust 版本是 1.48。如果需要 Rust 1.40 的支持,可以使用 3.0 版本。此外,截至 3.0 版本,mime_guess 2.0 版本中所有标记为已弃用的功能都已删除,包括 pub extern crate mime 声明,这意味着您不能再 use new_mime_guess::mime;如果想要使用 mime 库,必须将其作为直接依赖项添加。

有关更改的更多信息,请参阅 变更日志

下面的 README 保持原样。


mime_guess GitHub 工作流程状态 Crates.io

通过文件扩展名猜测 MIME/MediaType。使用已知的文件扩展名 -> MIME 类型映射的静态映射。

以下为新贡献者的新要求

所需 Rust 版本:1.33

文档

版本控制

由于错误地提前发布,mime_guess 目前公开依赖于一个 1.0 之前的 mime,这意味着 mime 升级是破坏性更改,需要增加主版本号。请参阅以下表格以找到与您的 mime 版本匹配的 mime_guess 版本

mime 版本 mime_guess 版本
0.1.x, 0.2.x 1.x.y
0.3.x 2.x.y

注意:返回的 MIME 类型可能不稳定/不可保证

对于给定扩展返回的媒体类型不被视为crate的稳定API的一部分,并且通常在补丁(x.y.z + 1)版本中更新,以尽可能准确。MIME更改将在最佳努力的基础上回溯到先前的重大版本。

请注意,只有检查路径/文件名的扩展名来猜测MIME类型。可能或可能不在该路径上的文件可能或可能不是返回的MIME类型的有效文件。对文件结构或长度的不安全或未经验证的假设要小心。

扩展名也可能有多个适用的MIME类型。当返回多个类型时,第一个被认为是最“正确”的——以下将详细说明。

贡献

为扩展添加或纠正MIME类型

文件扩展名的MIME类型错误或缺失吗?太好了!虽然对我们来说不是很好,但如果你想发起一个pull request,那就太好了!

文件扩展名到MIME类型的映射列表在src/mime_types.rs中。**列表按文件扩展名字典顺序排序,所有扩展名都是小写(适用于情况)。**前者是必要的,以支持在关闭phf-map功能时回退到二分搜索,以及维护者的精神健康。后者只是为了保持一致性;搜索不区分大小写。

只需添加或更新适当的字符串对,以进行所需的修正。运行cargo test以确保库继续正确运行。

重要!引用修正后的MIME类型

在发起pull request时,请将一个链接到官方文件或RFC的链接包含在提交信息中,指出所讨论文件类型的正确MIME类型,这样提交历史就可以用作审计跟踪。

虽然这里只是猜测,但我们希望尽可能准确。如果没有必要搜索证实材料,这会使我们审查你的贡献变得容易得多。

每个扩展多个MIME类型

2.0.0开始,支持每个扩展多个MIME类型。对于给定扩展的列表中的第一个MIME类型应被认为是“最正确”的,这样只关心获取单个MIME类型的用户可以使用first*()方法。

“正确”的定义是开放的,然而。在作者看来,这应该是给定文件格式最新IETF RFC中定义的,或者明确地取代所有其他类型的。

如果官方IANA注册替换了较老的“实验性”风格的媒体类型,请将新类型放在列表中旧类型之前,但保留旧类型以供参考。

- ("md", &["text/x-markdown"]),
+ ("md", &["text/markdown", "text/x-markdown"]),

API或crate操作的更改

我们欢迎对crate的API或其内部工作的更改,无论是否破坏,如果这提高了crate的整体操作、效率或用户体验,那么这是一个好主意,在仓库上打开一个问题,这样我们就可以讨论你提出的更改,并决定如何最好地处理它们。

许可

MIT(有关更多信息,请参阅此仓库中的LICENSE文件。)

依赖关系

~155KB