Changelog

0.1.0 - 2026-07-16

This is a breaking release. It replaces the panic-based file API with a typed Result, changes two public field types, and preserves more of the precision and semantics stored in EXIF rational and ASCII values.

Breaking Changes

Typed Error API

Parsing And Correctness

Malformed Optional Tags

Migration

Before 0.1.0:

let metadata = glexif.get_exif_data_for_file(path)
use_make(metadata.make)

With 0.1.0:

case glexif.get_exif_data_for_file(path) {
  Ok(metadata) -> use_make(metadata.make)
  Error(glexif.ExifMarkerNotFound) -> handle_photo_without_exif()
  Error(error) -> report(glexif.error_to_string(error))
}

Applications that consider a JPEG without EXIF to be valid should translate ExifMarkerNotFound into their own empty or absent metadata representation.

Supported Scope

Maker notes, shutter-speed value, lens info, XMP, PNG EXIF containers, and nonstandard APP1 payloads remain unsupported.

Package Metadata

Search Document