25个稳定版本
使用旧的Rust 2015
2.0.5 | 2024年6月29日 |
---|---|
2.0.4 | 2022年2月16日 |
2.0.3 | 2020年2月28日 |
2.0.1 | 2019年8月5日 |
1.1.1 | 2015年7月5日 |
#15 in 文件系统
3,110,544 每月下载量
用于 5,410 个crate (497直接)
96KB
2K SLoC
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请求,那对您来说就是好事!
文件扩展名到MIME类型的映射列表位于src/mime_types.rs
中。列表按照文件扩展名进行字典顺序排序,所有扩展名均为小写(适用时)。前者是必要的,以支持在关闭phf-map
功能时回退到二分搜索,以及为了维护者的理智。后者只是为了保持一致性;搜索不区分大小写。
只需添加或更新适当的字符串对,即可进行所需的修正。运行cargo test
以确保库继续正确工作。
重要!引用修正后的MIME类型
在提交pull request时,请在提交信息中包含一个指向官方文档或RFC的链接,该文档或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
文件。)
依赖项
~135KB