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 文件系统
15,503 每月下载量
用于 29 个库(14 个直接使用)
91KB
2K SLoC
new_mime_guess
该项目是 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
通过文件扩展名猜测 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