11 releases
Uses old Rust 2015
| 0.1.54 | Mar 18, 2025 |
|---|---|
| 0.1.53 | Aug 16, 2024 |
| 0.1.52 | Feb 21, 2022 |
| 0.1.51 | Nov 9, 2021 |
| 0.1.2 | Mar 3, 2021 |
#110 in Filesystem
71,929 downloads per month
Used in 51 crates
(9 directly)
29KB
191 lines
mime2ext
A simple compact crate to look up a file extension for a mime type.
It embeds part of the mime-db database, packed efficiently into around 20 KiB. There are no dependencies, and it's no_std-compatible.
Example
use mime2ext::mime2ext;
assert_eq!(mime2ext("image/png"), Some("png"));
assert_eq!(mime2ext("application/octet-stream"), Some("bin"));
assert_eq!(mime2ext("text/html; charset=UTF-8"), Some("html"));
assert_eq!(mime2ext("nonexistent/mimetype"), None);
assert_eq!(mime2ext("invalid-mimetype"), None);
Interoperability with mime
mime's Mime type is supported through its implementation of AsRef<str>, without any dependency on the crate:
use mime::{Mime, TEXT_PLAIN};
use mime2ext::mime2ext;
assert_eq!(mime2ext(TEXT_PLAIN), Some("txt"));
let mime: Mime = "text/xml; charset=latin1".parse()?;
assert_eq!(mime2ext(&mime), Some("xml"));
Versioning
mime2ext includes a static version of mime-db. A new version of mime2ext has to be released for each new version of mime-db.
mime2ext's version number tracks that of mime-db. mime2ext version 0.1.49 corresponds to mime-db version 1.49.0.
See CHANGELOG.md for differences between versions, including relevant changes to mime-db.
License
Both mime2ext and mime-db are licensed under the MIT license. See LICENSE and mime-db/LICENSE.
See also
mime_guess, which mainly converts in the opposite direction. It can also convert mime types to extensions but often suggests rarely-used extensions, likejpeforimage/jpeg.