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)