Crate exif_oxide

Source
Expand description

exif-oxide: High-performance Rust implementation of ExifTool

This library provides metadata extraction from image files with ExifTool compatibility. The architecture uses runtime registries for PrintConv/ValueConv implementations to avoid code generation bloat while maintaining flexible extensibility.

§Testing

This crate includes both unit tests and integration tests:

  • Unit tests: Always available, test individual components in isolation
  • Integration tests: Require the integration-tests feature flag and external test assets

To run all tests including integration tests:

cargo test --features integration-tests

Integration tests compare our output against ExifTool reference data and require test images and the ExifTool submodule to be available. They are automatically excluded from published crates to keep package size manageable.

Re-exports§

pub use file_detection::FileDetectionError;
pub use file_detection::FileTypeDetectionResult;
pub use file_detection::FileTypeDetector;
pub use registry::Registry;
pub use types::ExifData;
pub use types::ExifError;
pub use types::TagValue;
pub use generated::COMPOSITE_TAG_LOOKUP as COMPOSITE_TAG_BY_NAME;
pub use generated::*;

Modules§

composite_tags
Composite tag processing module
conditions
Conditional dispatch system for ExifTool compatibility
examples
Example implementations and configurations for exif-oxide
exif
EXIF/TIFF parsing module
file_detection
File type detection engine following ExifTool’s implementation
file_types
File type detection utilities
formats
File format detection and processing
generated
Generated code module
implementations
Implementation module for exif-oxide
processor_registry
Enhanced Processor Architecture for exif-oxide
raw
RAW Image Format Support Module
registry
Implementation registry for runtime PrintConv/ValueConv lookup
tiff_types
TIFF format types and structures
tiff_utils
TIFF utilities for reading basic tag information Used for NEF/NRW detection and other TIFF-based format analysis
types
Core type definitions for exif-oxide
value_extraction
Value extraction functions for EXIF/TIFF data
xmp
XMP (eXtensible Metadata Platform) processing module

Functions§

extract_metadata_json
Extract metadata from a file and return it as JSON (matching CLI output format)
init
Ensure conversions are registered (call this before using the library)