Skip to main content

Crate file_format

Crate file_format 

Source
Expand description

Crate for determining the file format of a given file or stream.

It provides a variety of functions for identifying a wide range of file formats, including ZIP, Compound File Binary (CFB), Extensible Markup Language (XML) and more.

It checks the signature of the file to determine its format and intelligently employs specific readers when available for accurate identification. If the signature is not recognized, the crate falls back to the default file format, which is Arbitrary Binary Data (BIN).

§Examples

Determines from a file:

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);

Determines from bytes:

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);

Retrieves file formats by extension, media type, or kind:

use file_format::{FileFormat, Kind};

let formats = FileFormat::from_extension("jpg");
assert!(formats.contains(&FileFormat::JointPhotographicExpertsGroup));

let formats = FileFormat::from_media_type("image/jpeg");
assert!(formats.contains(&FileFormat::JointPhotographicExpertsGroup));

let formats = FileFormat::from_kind(Kind::Image);
assert!(formats.contains(&FileFormat::JointPhotographicExpertsGroup));

§Crate features

All features below are disabled by default.

§Reader features

These features enable the detection of file formats that require a specific reader for identification.

Enums§

FileFormat
Represents a specific file format identified by its magic-byte signature or internal structure.
Kind
The broad category a FileFormat belongs to.