Skip to main content

Crate exiftool_rs

Crate exiftool_rs 

Source
Expand description

§exiftool-rs

A pure Rust reimplementation of ExifTool for reading, writing, and editing metadata in image, audio, video, and document files.

194/194 test files (100%) produce identical tag names as Perl ExifTool v13.52. Over 11,600 tags verified across 55+ file formats.

§Quick Start

use exiftool_rs::ExifTool;

let et = ExifTool::new();
let tags = et.extract_info("photo.jpg").unwrap();
for tag in &tags {
    println!("{}: {}", tag.name, tag.print_value);
}

§One-liner

let info = exiftool_rs::image_info("photo.jpg").unwrap();
println!("Camera: {}", info.get("Model").unwrap_or(&String::new()));

§Writing Tags

use exiftool_rs::ExifTool;

let mut et = ExifTool::new();
et.set_new_value("Artist", Some("John Doe"));
et.write_info("photo.jpg", "photo_out.jpg").unwrap();

§Supported Formats (55+ readers, 15 writers)

Images: JPEG, TIFF, PNG, WebP, PSD, BMP, GIF, HEIF/AVIF, ICO, XCF, BPG, MIFF, PGF

Raw: CR2, CR3, CRW, NEF, DNG, ARW, ORF, RAF, RW2, PEF, SR2, X3F, IIQ, 3FR, ERF, MRW

Video: MP4/MOV, AVI, MKV, MTS, WTV, DV, FLV, SWF, MXF

Audio: MP3, FLAC, WAV, OGG, AAC, AIFF, APE, MPC, WavPack, DSF, Audible

Documents: PDF, RTF, HTML, PostScript, DjVu, OpenDocument, TNEF

Scientific: DICOM, MRC, FITS, XISF

Other: EXE/ELF/Mach-O, ZIP/RAR/GZ, ISO, LNK, Torrent, VCard, MIE, Lytro LFP, FLIR FPF, CaptureOne EIP

MakerNotes: Canon, Nikon, Sony, Pentax, Olympus, Panasonic, Fujifilm, Samsung, Sigma, Casio, Ricoh, Minolta, Apple, Google, FLIR, GE, GoPro

Re-exports§

pub use crate::error::Error;
pub use crate::error::Result;
pub use crate::exiftool::ExifTool;
pub use crate::exiftool::ImageInfo;
pub use crate::exiftool::Options;
pub use crate::file_type::FileType;
pub use crate::tag::Tag;
pub use crate::tag::TagGroup;
pub use crate::tag::TagId;
pub use crate::value::Value;

Modules§

composite
Composite (derived/calculated) tags.
config
ExifTool configuration file parser (.ExifTool_config).
error
exiftool
Core ExifTool struct and public API.
file_type
formats
geolocation
Geolocation reverse geocoding using ExifTool’s Geolocation.dat.
i18n
Internationalization support for tag descriptions.
md5
Minimal MD5 implementation (RFC 1321) for CurrentIPTCDigest.
metadata
tag
tags
value
writer

Constants§

VERSION
Library version.

Functions§

get_file_type
Detect the file type of the given file.
image_info
Convenience function: extract metadata from a file in one call.