14个版本 (稳定)
新 1.4.0 | 2024年8月24日 |
---|---|
1.3.0 | 2024年7月25日 |
1.2.0 | 2024年2月23日 |
0.2.0 | 2024年2月18日 |
0.1.1 | 2024年2月15日 |
245在解析器实现中排名
每月917次下载
用于phorg
175KB
4K SLoC
Nom-Exif
使用nom编写的纯Rust Exif/metadata解析库。
支持的文件类型
- 图像
- JPEG
- HEIF/HEIC
- 视频
- MOV
- MP4
特性
- 适当情况下零拷贝:尽可能使用借用和切片代替复制。
- 最小化I/O操作:当元数据存储在大文件的末尾/中间(例如,MOV/HEIC文件)时,使用
Seek
而不是Read
来快速定位元数据的位置。 - 按需付费:在提取Exif数据时,仅解析与指定Exif标签相对应的信息,以减少处理大量文件时的开销。
- 健壮性和稳定性:通过长期的Fuzz测试,并在测试期间发现的大量崩溃问题已被修复。感谢@sigaloid指出这一点!
使用方法
CLI工具rexiftool
正常输出
cargorun --examplerexiftool testdata/meta.mov
:
com.apple.quicktime.make => Apple
com.apple.quicktime.model => iPhone X
com.apple.quicktime.software => 12.1.2
com.apple.quicktime.location.ISO6709 => +27.1281+100.2508+000.000/
com.apple.quicktime.creationdate => 2019-02-12T15:27:12+08:00
duration => 500
width => 720
height => 1280
JSON转储
cargorun --功能json_dump --examplerexiftool ---j testdata/meta.mov
:
{
"height": "1280",
"duration": "500",
"width": "720",
"com.apple.quicktime.creationdate": "2019-02-12T15:27:12+08:00",
"com.apple.quicktime.make": "Apple",
"com.apple.quicktime.model": "iPhone X",
"com.apple.quicktime.software": "12.1.2",
"com.apple.quicktime.location.ISO6709": "+27.1281+100.2508+000.000/"
}
变更日志
依赖
~4.5–6.5MB
~115K SLoC