Crate file_format[][src]

Expand description

file-format

Build Crates.io Docs Rust License

File format library for Rust.

This crate is for recognizing binary-based file formats.

Examples

Determines from a file:

use file_format::FileFormat;

let format = FileFormat::from_file("fixtures/image/sample.jpg").unwrap();
assert_eq!(format.media_type(), "image/jpeg");
assert_eq!(format.extension(), "jpg");

Determines from bytes:

use file_format::FileFormat;

let format = FileFormat::from_bytes(&[0x66, 0x4C, 0x61, 0x43]);
assert_eq!(format.media_type(), "audio/x-flac");
assert_eq!(format.extension(), "flac");

Supported file formats

Media typeExtensionDescription
application/dicomdcmDigital Imaging and Communications in Medicine
application/epub+zipepubElectronic Publication
application/gzipgzGzip
application/java-vmclassJava class
application/mxfmxfMaterial Exchange Format
application/octet-streambinArbitrary binary data
application/oggogxOgg Multiplexed Media
application/pdfpdfPortable Document Format
application/vnd.android.dexdexDalvik Executable
application/vnd.debian.binary-packagedebDebian package
application/vnd.ms-cab-compressedcabCabinet
application/vnd.ms-fontobjecteotEmbedded OpenType
application/vnd.ms-htmlhelpchmMicrosoft Compiled HTML Help
application/vnd.oasis.opendocument.graphicsodgOpenDocument Graphics
application/vnd.oasis.opendocument.presentationodpOpenDocument Presentation
application/vnd.oasis.opendocument.spreadsheetodsOpenDocument SpreadSheet
application/vnd.oasis.opendocument.textodtOpenDocument Text
application/vnd.rarrarRoshal ARchive
application/vnd.sketchup.skpskpSketchUp document
application/vnd.sqlite3sqliteSQLite 3 database
application/vnd.tcpdump.pcappcapLibpcap
application/wasmwasmWebAssembly binary
application/x-7z-compressed7z7z
application/x-alz-compressedalzALZip
application/x-apache-arrowarrowApache Arrow Columnar
application/x-apple-aliasaliasmacOS Alias
application/x-apple-diskimagedmgApple Disk Image
application/x-archivearUnix Archiver
application/x-arjarjArchived by Robert Jung
application/x-blenderblendBlender 3D data
application/x-bzip2bz2Bzip2
application/x-cfbcfbCompound File Binary
application/x-compressZUnix compress
application/x-cpiocpioCpio
application/x-esri-shapeshpShapefile
application/x-executableelfExecutable and Linkable Format
application/x-gameboy-color-romgbcGame Boy Color ROM
application/x-gameboy-romgbGame Boy ROM
application/x-gba-romgbaGame Boy Advance ROM
application/x-google-chrome-extensioncrxGoogle Chrome Extension
application/x-indesigninddAdobe InDesign document
application/x-iso9660-imageisoISO 9660 image
application/x-lrziplrzLong Range ZIP
application/x-lz4lz4LZ4
application/x-lzfselzfseLempel–Ziv Finite State Entropy
application/x-lzh-compressedlzhLHA
application/x-lziplzLzip
application/x-lzoplzoLzop
application/x-mobipocket-ebookmobiMobipocket
application/x-ms-shortcutlnkWindows shortcut
application/x-msdownloadexeWindows executable
application/x-n64-romz64Nintendo 64 ROM
application/x-navi-animationaniANI
application/x-nintendo-ds-romndsNintendo DS ROM
application/x-nintendo-nes-romnesNintendo Entertainment System ROM
application/x-pcapngpcapngPcap-NG Packet Capture
application/x-rpmrpmRed Hat Package Manager package
application/x-sbxsbxSeqBox
application/x-shockwave-flashswfSmall Web Format
application/x-snappy-framedszSnappy
application/x-tartarTape archive
application/x-vhdvhdMicrosoft Virtual Hard Disk
application/x-vhdxvhdxMicrosoft Virtual Hard Disk 2
application/x-virtualbox-vdivdiVirtualBox Virtual Disk Image
application/x-xarxareXtensible ARchive format
application/x-xzxzXZ
application/x-zoozooZoo
application/zipzipZIP
application/zstdzstZstandard
audio/aacaacAdvanced Audio Coding
audio/aiffaifAudio Interchange File Format
audio/amramrAdaptive Multi-Rate
audio/basicauAu
audio/midimidMusical Instrument Digital Interface
audio/mp4f4aAdobe Flash Player Audio
audio/mp4f4bAdobe Flash Player Audiobook
audio/mp4m4bApple iTunes ALAC/AAC-LC Audiobook
audio/mp4m4pApple iTunes ALAC/AAC-LC Protected Audio
audio/mpegmp3MPEG-1/2 Audio Layer III
audio/oggogaOgg FLAC
audio/oggoggOgg Vorbis
audio/oggspxOgg Speex
audio/opusopusOgg Opus
audio/qcelpqcpQualcomm PureVoice
audio/vnd.dolby.dd-rawac3Audio Codec 3
audio/vnd.wavewavWaveform Audio
audio/wavpackwvWavPack
audio/x-apeapeMonkey’s Audio
audio/x-dsfdsfSony DSD Stream File
audio/x-flacflacFree Lossless Audio Codec
audio/x-ititImpulse Tracker Module
audio/x-m4am4aApple iTunes ALAC/AAC-LC Audio
audio/x-musepackmpcMusepack
audio/x-s3ms3mScreamTracker 3 Module
audio/x-xmxmFastTracker 2 Module
font/otfotfOpenType
font/ttfttfTrueType
font/woffwoffWeb Open Font Format
font/woff2woff2Web Open Font Format 2
image/apngapngAnimated Portable Network Graphics
image/avifavifAV1 Image File Format
image/bmpbmpWindows Bitmap
image/bpgbpgBetter Portable Graphics
image/cineoncinCineon Image
image/fitsfitsFlexible Image Transport System
image/flifflifFree Lossless Image Format
image/gifgifGraphics Interchange Format
image/heicheicHigh Efficiency Image Coding
image/heic-sequenceheicHigh Efficiency Image Coding Sequence
image/heifheicHigh Efficiency Image File Format
image/heif-sequenceheicHigh Efficiency Image File Format Sequence
image/icnsicnsApple Icon Image
image/jp2jp2JPEG 2000 Part 1 (JP2)
image/jpegjpgJoint Photographic Experts Group
image/jpmjpmJPEG 2000 Part 6 (JPM)
image/jpxjpxJPEG 2000 Part 2 (JPX)
image/jxljxlJPEG XL
image/jxrjxrJPEG extended range
image/ktxktxKhronos TeXture
image/ktx2ktx2Khronos TeXture 2
image/mj2mj2JPEG 2000 Part 3 (MJ2)
image/pngpngPortable Network Graphics
image/tifftiffTag Image File Format
image/vnd.adobe.photoshoppsdAdobe Photoshop document
image/webpwebpWebP
image/wmfwmfWindows Metafile
image/x-canon-cr2cr2Canon Raw 2
image/x-canon-cr3cr3Canon Raw 3
image/x-dpxdpxDigital Picture Exchange
image/x-exrexrOpenEXR
image/x-fujifilm-rafrafFujifilm Raw
image/x-iconcurCUR
image/x-iconicoICO
image/x-nikon-nefnefNikon Electronic File
image/x-olympus-orforfOlympus Raw Format
image/x-panasonic-rw2rw2Panasonic Raw
image/x-xcfxcfeXperimental Computing Facility
model/gltf-binaryglbGL Transmission Format binary
video/3gpp3gp3rd Generation Partnership Project
video/3gpp23g23rd Generation Partnership Project 2
video/aviaviAudio Video Interleave
video/mp2tm2tsMPEG-2 Transport Stream
video/mp4f4pAdobe Flash Player Protected Video
video/mp4f4vAdobe Flash Player Video
video/mp4mp4MPEG-4 Part 14
video/mpegmpgMPEG-1 video
video/oggogmOgg Media
video/oggogvOgg Theora
video/quicktimemovQuickTime Movie
video/webmwebmWebM
video/x-flvflvFlash Video
video/x-m4vm4vM4V
video/x-matroskamkvMatroska Multimedia Container
video/x-ms-asfwmvWindows Media Video

References

License

This project is licensed under either of Apache License, Version 2.0 or MIT license at your option.

Structs

A file format.