2 个稳定版本
使用旧的 Rust 2015
2.0.5 | 2023 年 9 月 26 日 |
---|
#148 in 文件系统
104,638 每月下载量
用于 105 个 crate (3 directly)
93KB
2K SLoC
mime_guess2
通过文件扩展名进行 MIME/MediaType 猜测。使用已知文件扩展名 -> MIME 类型映射的静态表。
返回贡献者:以下为新的提交要求
所需 Rust 版本:1.33
文档
版本控制
由于一个错误的提前发布,当前的 mime_guess2
公共依赖一个小于 1.0 的 mime
,这意味着 mime
升级是破坏性更改,需要版本号的重大提升。请参考以下表格以找到与您的 mime
版本相匹配的 mime_guess2
版本
mime 版本 |
mime_guess2 版本 |
---|---|
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 类型
当打开一个拉取请求时,请在 提交信息 中包含一个指向官方文档或 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
文件。)
依赖项
~130KB