2 个稳定版本
使用旧的 Rust 2015
3.0.0 | 2023 年 11 月 26 日 |
---|---|
2.0.5 | 2023 年 10 月 16 日 |
#410 in 文件系统
3,452 每月下载量
用于 41 个 Crates (4 直接)
95KB
2K SLoC
mime_infer
通过文件扩展名推断 MIME 类型。使用已知的文件扩展名 -> MIME 类型映射的静态表。
返回贡献者:以下为新要求的提交
所需 Rust 版本:1.33
文档
版本控制
由于一个错误的提前发布,mime_infer
当前公开依赖于一个小于 1.0 的 mime
,这意味着 mime
升级是破坏性更改,需要重大版本号提升。请参考以下表格以找到与您的 mime
版本相匹配的 mime_infer
版本
mime 版本 |
mime_infer 版本 |
---|---|
0.1.x, 0.2.x |
1.x.y |
0.3.x |
2.x.y |
注意:返回的 MIME 类型可能不稳定/无保证
对于给定扩展名的返回媒体类型不被认为是库的稳定 API 的一部分,并且通常在补丁 (x.y.z + 1
) 版本中更新以尽可能正确。MIME 更改尽可能回滚到先前的重大版本。
注意,仅检查路径/文件名的扩展名以推断 MIME 类型。可能或可能不在该路径上的文件可能是返回 MIME 类型的有效文件。请小心处理有关文件结构或长度的不安全或不验证的假设。
扩展名也可能有多个适用的 MIME 类型。当返回多个时,第一个被认为是“最正确”的--下面将详细说明。
贡献
为扩展名添加或纠正 MIME 类型
文件扩展名的 MIME 类型错误或缺失吗?太好了!虽然对我们来说不是很好,但如果您想发起拉取请求,那就太好了!
文件扩展名与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的整体操作、效率或人体工程学,我们欢迎对crate的API或其内部工作方式进行更改,无论是否破坏。然而,打开仓库中的一个问题是明智的,这样我们可以讨论您提出的更改并决定如何最好地处理它们。
许可证
MIT(有关更多信息,请参阅此仓库中的 LICENSE
文件。)
依赖关系
~135KB