24 次重大发布
0.25.0 | 2024 年 5 月 8 日 |
---|---|
0.24.0 | 2024 年 2 月 3 日 |
0.23.0 | 2023 年 12 月 11 日 |
0.22.0 | 2023 年 11 月 4 日 |
0.4.0 | 2021 年 10 月 21 日 |
#57 在 文件系统 中
16,259 每月下载次数
在 19 个 Crate 中使用(直接使用 16 个)
205KB
4.5K SLoC
file-format
用于确定给定文件或流的文件格式的 Crate。
它提供了一系列功能,用于识别广泛的文件格式,包括 ZIP、复合文件二进制(CFB)、可扩展标记语言(XML)等。
它检查文件的签名以确定其格式,并在可用时智能地使用特定的读取器进行准确识别。如果签名不被识别,Crate 将回退到默认的文件格式,即任意二进制数据(BIN)。
示例
从文件中确定
use file_format::{FileFormat, Kind};
let fmt = FileFormat::from_file("fixtures/document/sample.pdf")?;
assert_eq!(fmt, FileFormat::PortableDocumentFormat);
assert_eq!(fmt.name(), "Portable Document Format");
assert_eq!(fmt.short_name(), Some("PDF"));
assert_eq!(fmt.media_type(), "application/pdf");
assert_eq!(fmt.extension(), "pdf");
assert_eq!(fmt.kind(), Kind::Document);
从字节中确定
use file_format::{FileFormat, Kind};
let fmt = FileFormat::from_bytes(&[0xFF, 0xD8, 0xFF]);
assert_eq!(fmt, FileFormat::JointPhotographicExpertsGroup);
assert_eq!(fmt.name(), "Joint Photographic Experts Group");
assert_eq!(fmt.short_name(), Some("JPEG"));
assert_eq!(fmt.media_type(), "image/jpeg");
assert_eq!(fmt.extension(), "jpg");
assert_eq!(fmt.kind(), Kind::Image);
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
file-format = "0.25"
Crate 功能
以下所有功能默认都未启用。
读取器功能
这些功能启用了对需要特定读取器进行识别的文件格式的检测。
reader
- 启用所有读取器功能。reader-asf
- 启用基于高级系统格式(ASF)的文件格式检测。reader-cfb
- 启用基于复合文件二进制(CFB)的文件格式检测。reader-ebml
- 启用基于可扩展二进制元语言(EBML)的文件格式检测。reader-exe
- 启用基于 MS-DOS 可执行文件(EXE)的文件格式检测。reader-mp4
- 启用基于 MPEG-4 Part 14(MP4)的文件格式检测。reader-pdf
- 启用基于可移植文档格式(PDF)的文件格式检测。reader-rm
- 启用基于 RealMedia(RM)的文件格式检测。reader-sqlite3
- 启用基于 SQLite 3 的文件格式检测。reader-txt
- 启用纯文本(TXT)文件格式检测。reader-xml
- 启用基于可扩展标记语言(XML)的文件格式检测。reader-zip
- 启用基于 ZIP 的文件格式检测。
支持的文件格式
归档
- 7-Zip (7Z)
- ACE
- ALZ
- 由 Robert Jung 归档(ARJ)
- Cabinet (CAB)
- 可扩展归档(XAR)
- LArc (LZS)
- LHA
- Mozilla 归档(MAR)
- 多层归档(MLA)
- PMarc (PMA)
- Roshal 归档(RAR)
- SeqBox (SBX)
- Squashfs
- StuffIt (SIT)
- StuffIt X (SITX)
- 磁带归档(TAR)
- UNIX 归档程序(归档程序)
- Windows 映像格式(WIM)
- ZIP
- ZPAQ
- cpio
- zoo
音频
- 8位采样语音(8SVX)
- 自适应多速率(AMR)
- 高级音频编码(AAC)
- Apple iTunes 音频(M4A)
- Apple iTunes 电子书(M4B)
- Apple iTunes 受保护音频(M4P)
- Au
- 音频编解码器 3(AC-3)
- 音频交换文件格式(AIFF)
- 音频视觉研究(AVR)
- 创意语音(VOC)
- FastTracker 2 扩展模块(XM)
- Flash MP4 音频(F4A)
- Flash MP4 电子书(F4B)
- 免费无损音频编解码器(FLAC)
- Impulse Tracker 模块(IT)
- MPEG-1/2 音频层 2(MP2)
- MPEG-1/2 音频层 3(MP3)
- MPEG-4 第 14 部分 音频(MP4)
- Matroska 音频(MKA)
- Monkey's Audio(APE)
- Musepack(MPC)
- 乐器数字接口(MIDI)
- Ogg FLAC(OGA)
- Ogg Opus(Opus)
- Ogg Speex(Speex)
- Ogg Vorbis(Vorbis)
- 高通 PureVoice(QCP)
- 相当好的音频(QOA)
- RealAudio(RA)
- Scream Tracker 3 模块(S3M)
- 索尼 DSD 流文件(DSF)
- SoundFont 2(SF2)
- Ultimate Soundtracker 模块(MOD)
- WavPack(WV)
- 波形音频(WAV)
- Windows 媒体音频(WMA)
压缩
- BZip3(BZ3)
- LZ4
- Lempel-Ziv 状态熵(LZFSE)
- Lempel-Ziv-Markov 链算法(LZMA)
- 长距离 ZIP(LRZIP)
- Snappy
- UNIX 压缩(压缩)
- XZ
- Zstandard(zstd)
- bzip(BZ)
- bzip2(BZ2)
- gzip(GZ)
- lzip(LZ)
- lzop(LZO)
- rzip(RZ)
数据库
- Microsoft Access 2007 数据库(ACCDB)
- Microsoft Access 数据库(MDB)
- Microsoft Works 数据库(WDB)
- OpenDocument 数据库(ODB)
- SQLite 3
图表
- 电路图文档(CDDX)
- Microsoft Visio 绘图(VSD)
- Office Open XML 绘图(VSDX)
- StarChart(SDS)
- draw.io(DRAWIO)
磁盘
- Amiga 磁盘文件(ADF)
- Apple 磁盘映像(DMG)
- ISO 9660(ISO)
- Microsoft 虚拟硬盘(VHD)
- Microsoft 虚拟硬盘 2(VHDX)
- QEMU 写时复制(QCOW)
- 虚拟机磁盘(VMDK)
- VirtualBox 虚拟磁盘映像(VDI)
文档
- AbiWord(ABW)
- AbiWord 模板(AWT)
- Adobe InDesign 文档(INDD)
- DjVu
- InDesign 标记语言(IDML)
- LaTeX(TeX)
- Microsoft Publisher 文档(PUB)
- Microsoft Word 文档(DOC)
- Microsoft Works 文字处理器(WPS)
- Microsoft Write(WRI)
- Office Open XML 文档(DOCX)
- OpenDocument 文本(ODT)
- OpenDocument 文本主(ODM)
- OpenDocument 文本主模板(OTM)
- OpenDocument 文本模板(OTT)
- OpenXPS(OXPS)
- 便携式文档格式(PDF)
- PostScript(PS)
- 富文本格式(RTF)
- StarWriter(SDW)
- Sun XML Writer(SXW)
- Sun XML Writer 全局(SGW)
- Sun XML Writer 模板(STW)
- 统一办公格式文本(UOT)
- WordPerfect 文档(WPD)
电子书
- 宽带电子书(BBeB)
- 电子出版物(EPUB)
- 小说书(FB2)
- 小说书 ZIP(FBZ)
- Microsoft Reader(LIT)
- Mobipocket(MOBI)
可执行文件
- Commodore 64 程序(PRG)
- 通用目标文件格式(COFF)
- Dalvik 可执行文件(DEX)
- 动态链接库(DLL)
- 可执行和链接格式(ELF)
- Java 类
- LLVM 位码(BC)
- 线性可执行文件(LE)
- Lua 字节码
- MS-DOS 可执行文件(EXE)
- Mach-O
- 新可执行文件(NE)
- Nintendo Switch 可执行文件(NSO)
- 优化 Dalvik 可执行文件(DEY)
- 便携式可执行文件(PE)
- WebAssembly 二进制文件(Wasm)
- Xbox 360 可执行文件(XEX)
- Xbox 可执行文件(XBE)
字体
- BMFont ASCII(FNT)
- BMFont 二进制(FNT)
- 嵌入式 OpenType(EOT)
- 字形
- OpenType(OTF)
- TrueType (TTF)
- Web 开放字体格式 (WOFF)
- Web 开放字体格式 2 (WOFF2)
公式
- 数学标记语言 (MathML)
- OpenDocument 公式 (ODF)
- OpenDocument 公式模板 (OTF)
- StarMath (SMF)
- Sun XML Math (SXM)
地理空间
- 灵活互操作数据传输 (FIT)
- GPS 交换格式 (GPX)
- 地理标记语言 (GML)
- 密钥孔标记语言 (KML)
- 密钥孔标记语言 ZIP (KMZ)
- Shapefile (SHP)
- 训练中心 XML (TCX)
图像
- AV1 图像文件格式 (AVIF)
- AV1 图像文件格式序列 (AVIFS)
- 可调整可缩放纹理压缩 (ASTC)
- Adobe Illustrator 图稿 (AI)
- Adobe Photoshop 文档 (PSD)
- 动画可移植网络图形 (APNG)
- Apple 图标图像 (ICNS)
- 更好的可移植图形 (BPG)
- 佳能 Raw (CRW)
- 佳能 Raw 2 (CR2)
- 佳能 Raw 3 (CR3)
- Cineon (CIN)
- 数字图片交换 (DPX)
- 封装后置脚本 (EPS)
- 实验计算设施 (XCF)
- 免费无损图像格式 (FLIF)
- 富士胶片 Raw (RAF)
- 图形交换格式 (GIF)
- 高效率图像编码 (HEIC)
- 高效率图像编码序列 (HEICS)
- 高效率图像文件格式 (HEIF)
- 高效率图像文件格式序列 (HEIFS)
- JPEG 2000 编码流 (J2C)
- JPEG 2000 第 1 部分 (JP2)
- JPEG 2000 第 2 部分 (JPX)
- JPEG 2000 第 6 部分 (JPM)
- JPEG 扩展范围 (JXR)
- JPEG 网络图形 (JNG)
- JPEG XL (JXL)
- JPEG-LS (JLS)
- 联合摄影专家组 (JPEG)
- Khronos 纹理 (KTX)
- Khronos 纹理 2 (KTX2)
- Magick 图像文件格式 (MIFF)
- Microsoft DirectDraw Surface (DDS)
- 多图像网络图形 (MNG)
- 尼康电子文件 (NEF)
- 奥林巴斯 Raw 格式 (ORF)
- OpenDocument 图形 (ODG)
- OpenDocument 图形模板 (OTG)
- OpenEXR (EXR)
- OpenRaster (ORA)
- 松下 Raw (RW2)
- 图片交换 (PCX)
- 可移植任意地图 (PAM)
- 可移植位图 (PBM)
- 可移植浮点地图 (PFM)
- 可移植灰度地图 (PGM)
- 可移植网络图形 (PNG)
- 可移植像素地图 (PPM)
- 相当好的图像 (QOI)
- 辐射 HDR (HDR)
- 可缩放矢量图形 (SVG)
- 硅图形图像 (SGI)
- 草图
- 草图 43
- StarDraw (SDA)
- Sun XML Draw (SXD)
- Sun XML Draw 模板 (STD)
- 标签图像文件格式 (TIFF)
- WebP
- Windows 动画光标 (ANI)
- Windows 位图 (BMP)
- Windows 光标 (CUR)
- Windows 图标 (ICO)
- Windows 元文件 (WMF)
- WordPerfect 图形 (WPG)
- X PixMap (XPM)
- farbfeld (FF)
元数据
- Android 二进制 XML (AXML)
- BitTorrent (Torrent)
- CD 音频 (CDA)
- 元信息封装 (MIE)
- TASTy
- Windows 快捷方式 (LNK)
- macOS 别名
模型
- 3D 制造格式 (3MF)
- 3D Studio (3DS)
- 3D Studio Max (MAX)
- 增材制造格式 (AMF)
- AutoCAD 绘图 (DWG)
- Autodesk 123D (123DX)
- Autodesk Alias (WIRE)
- Autodesk Inventor 装配 (IAM)
- Autodesk Inventor 绘图 (IDW)
- Autodesk Inventor 零件 (IPT)
- Autodesk Inventor 演示 (IPN)
- Blender (BLEND)
- Cinema 4D (C4D)
- 协作设计活动 (COLLADA)
- 设计 Web 格式 (DWF)
- 设计 Web 格式 XPS (DWFX)
- 绘图交换格式 ASCII (DXF)
- 绘图交换格式 二进制 (DXF)
- 可扩展 3D (X3D)
- Filmbox (FBX)
- Fusion 360 (F3D)
- GL 传输格式 二进制 (GLB)
- Google Draco (Draco)
- 初始图形交换规范 (IGES)
- 地震间导出(IQE)
- 地震间模型(IQM)
- MagicaVoxel(VOX)
- Maya ASCII(MA)
- Maya 二进制(MB)
- 3D 模型 ASCII(A3D)
- 3D 模型二进制(M3D)
- 多边形 ASCII(PLY)
- 多边形二进制(PLY)
- SketchUp(SKP)
- SolidWorks 零件(SLDASM)
- SolidWorks 绘图(SLDDRW)
- SolidWorks 零件(SLDPRT)
- SpaceClaim 文档(SCDOC)
- 产品模型数据交换标准(STEP)
- 立体光刻 ASCII(STL)
- 通用 3D(U3D)
- 通用场景描述 ASCII(USDA)
- 通用场景描述二进制(USDC)
- 通用场景描述 ZIP(USDZ)
- 虚拟现实建模语言(VRML)
- openNURBS(3DM)
其他
- ActiveMime(MSO)
- 高级系统格式(ASF)
- Android 资源存储容器(ARSC)
- Apache Arrow 列式(Arrow)
- Apache Avro(Avro)
- Apache Parquet(Parquet)
- 任意二进制数据(BIN)
- Atom
- Clojure 脚本
- 复合文件二进制(CFB)
- DER 证书(DER)
- 医学数字成像和通信(DICOM)
- 空
- 可扩展二进制元语言(EBML)
- 可扩展标记语言(XML)
- 可扩展样式表语言转换(XSLT)
- Flash CS5 项目(FLA)
- Flash 项目(FLA)
- 灵活图像传输系统(FITS)
- 超文本标记语言(HTML)
- ICC 配置文件(ICC)
- JSON 源
- Java 密钥库(JKS)
- Lua 脚本
- MPEG-4 第 14 部分(MP4)
- MS-DOS 批处理(Batch)
- Microsoft 编译的 HTML 帮助(CHM)
- Microsoft 项目计划(MPP)
- Microsoft Visual Studio 解决方案(SLN)
- MusicXML
- MusicXML ZIP(MXL)
- Ogg 多路复用媒体(OGX)
- PCAP 导出(PCAP)
- PCAP 下一个生成导出(PCAPNG)
- PEM 证书(PEM)
- PEM 证书签名请求(PEM)
- PEM 私钥(PEM)
- PEM 公钥(PEM)
- PGP 消息(PGP)
- PGP 私钥块(PGP)
- PGP 公钥块(PGP)
- PGP 签名(PGP)
- PGP 签名消息(PGP)
- Perl 脚本
- 个人存储表(PST)
- 纯文本(TXT)
- Python 脚本
- RealMedia(RM)
- 简单聚合(RSS)
- Ruby 脚本
- Shell 脚本
- 简单对象访问协议(SOAP)
- 小 Web 格式(SWF)
- 瓦片地图 XML(TMX)
- 瓦片集 XML(TSX)
- 工具命令语言脚本(Tcl 脚本)
- WebAssembly 文本(WAT)
- WordPerfect 宏(WPM)
- XML 本地化交换文件格式(XLIFF)
- 年龄加密
- gettext 机器对象(MO)
- 日历(ICS)
- 日历(VCS)
- 名片(VCF)
包
- Adobe 集成运行时(AIR)
- Android 应用程序包(AAB)
- Android 包(APK)
- AppImage
- Debian 包(DEB)
- 企业应用程序归档(EAR)
- Google Chrome 扩展(CRX)
- Java 归档(JAR)
- Microsoft 软件安装程序(MSI)
- Microsoft Visual Studio 扩展(VSIX)
- Nintendo Switch 包(NSP)
- Red Hat 软件包管理器(RPM)
- Web 应用程序归档(WAR)
- Windows 应用程序包(APPXBUNDLE)
- Windows 应用程序包(APPX)
- XAP
- XPInstall(XPI)
- iOS 应用程序商店包(IPA)
播放列表
- 高级流重定向器(ASX)
- MP3 URL(M3U)
- MPEG-DASH MPD(MPD)
- SHOUTcast 播放列表(PLS)
- Windows 媒体播放列表(WPL)
- XML 可共享播放列表格式(XSPF)
演示
- Corel 演示文稿(SHW)
- Corel 演示文稿 7(SHW)
- Microsoft PowerPoint 演示文稿(PPT)
- Office Open XML 演示文稿(PPTX)
- OpenDocument 演示文稿(ODP)
- OpenDocument 演示文稿模板(OTP)
- StarImpress(SDD)
- 太阳XML演示(SXI)
- 太阳XML演示模板(STI)
- 统一办公格式演示(UOP)
- WordPerfect演示(SHW)
只读存储器(ROM)
- 雅达利7800 ROM(A78)
- Commodore 64卡带(CRT)
- Game Boy Advance ROM(GBA)
- Game Boy Color ROM(GBC)
- Game Boy ROM(GB)
- Game Gear ROM(GG)
- Mega Drive ROM(MD)
- Neo Geo Pocket Color ROM(NGC)
- Neo Geo Pocket ROM(NGP)
- Nintendo 64 ROM(Z64)
- Nintendo DS ROM(NDS)
- Nintendo Entertainment System ROM(NES)
- Nintendo Switch ROM(XCI)
- 世嘉大师系统 ROM(SMS)
电子表格
- Microsoft Excel 电子表格(XLS)
- Microsoft Works 6 电子表格(XLR)
- Microsoft Works 电子表格(WKS)
- Office Open XML 电子表格(XLSX)
- OpenDocument 电子表格(ODS)
- OpenDocument 电子表格模板(OTS)
- StarCalc(SDC)
- 太阳XML Calc(SXC)
- 太阳XML Calc 模板(STC)
- 统一办公格式电子表格(UOS)
字幕
- MPEG-4 第14部分字幕(MP4)
- Matroska 字幕(MKS)
- SubRip 文本(SRT)
- 时间文本标记语言(TTML)
- 通用字幕格式(USF)
- 网络视频文本轨道(WebVTT)
视频
- 第三代合作伙伴计划(3GPP)
- 第三代合作伙伴计划2(3GPP2)
- 动作媒体视频(AMV)
- 苹果QuickTime(MOV)
- 苹果iTunes视频(M4V)
- 音频视频交错(AVI)
- Autodesk Animator(FLI)
- Autodesk Animator Pro(FLC)
- BDAV MPEG-2传输流(M2TS)
- Flash MP4受保护视频(F4P)
- Flash MP4视频(F4V)
- Flash视频(FLV)
- JPEG 2000 第3部分(MJ2)
- MPEG-1/2 视频(MPG)
- MPEG-2传输流(TS)
- MPEG-4 第14部分视频(MP4)
- MTV
- 材料交换格式(MXF)
- Matroska 3D视频(MK3D)
- Matroska视频(MKV)
- Microsoft数字视频录制(DVR-MS)
- Ogg媒体(OGM)
- Ogg Theora(Theora)
- RealVideo(RV)
- Silicon Graphics电影(SGI)
- 索尼电影(MQV)
- WebM
- Windows媒体视频(WMV)
- Windows录制电视节目(WTV)
固定装置
这些固定装置是用于测试目的的文件格式的样本,位于fixtures
目录中,并根据类型组织在子目录中。这些样本通常有意缩短以减少大小,这有时会阻止兼容软件完全解码。
许可证
本项目许可为以下之一