#exif #tags #ifd #metadata #gps

bin+lib rexif

RExif is a native Rust crate, written to extract EXIF data from JPEG and TIFF images

11 releases

0.7.5 Dec 2, 2024
0.7.4 Jul 14, 2024
0.7.3 May 14, 2021
0.5.1 Oct 31, 2020
0.3.1 Nov 9, 2015

#227 in Images

Download history 11923/week @ 2026-03-21 36553/week @ 2026-03-28 28968/week @ 2026-04-04 32868/week @ 2026-04-11 28858/week @ 2026-04-18 30112/week @ 2026-04-25 33526/week @ 2026-05-02 33350/week @ 2026-05-09 42494/week @ 2026-05-16 32078/week @ 2026-05-23 36992/week @ 2026-05-30 40371/week @ 2026-06-06 35533/week @ 2026-06-13 33469/week @ 2026-06-20 27836/week @ 2026-06-27 26722/week @ 2026-07-04

129,397 downloads per month
Used in 26 crates (7 directly)

MIT license

105KB
2.5K SLoC

rexif

RExif is a native Rust crate, written to extract EXIF data from JPEG and TIFF images.

It can be used as a library, or as a command-line tool. The sample binary called 'rexiftool' accepts files as arguments and prints the EXIF data. It gives a rough idea on how to use the crate.

Requirements

  • Latest stable Rust version from rustup.

Example

match rexif::parse_file(&file_name) {
    Ok(exif) => {
        println!("{} {} exif entries: {}", file_name,
            exif.mime, exif.entries.len());

        for entry in &exif.entries {
            println!("    {}: {}",
                    entry.tag,
                    entry.value_more_readable);
        }
    },
    Err(e) => {
        eprintln!("Error in {}: {} {}", &file_name,
            Error::description(&e), e.extra).unwrap();
    }
}

The src/main.rs file is a good starting point to learn how to use the crate, then take a look into the ExifEntry struct.

No runtime deps