A high-performance Rust implementation of ExifTool for metadata extraction and manipulation.
OxiDex is a memory-safe, drop-in replacement for the Perl-based ExifTool. It covers 16,677 metadata tags (58% ExifTool parity) across 140+ formats, with significantly better performance through Rust's zero-cost abstractions and parallel processing.
- 3.7-9.7x faster than Perl ExifTool (see benchmarks)
- Memory safe - No buffer overflows, use-after-free, or data races
- Drop-in compatible - Same CLI arguments as original ExifTool
- Cross-platform - Static binaries for Linux, macOS, and Windows
- Library + CLI - Use as a Rust crate or standalone binary
- AI-powered detection (optional) - Magika deep learning model for enhanced file type detection (
--features magika)
Pre-built binaries available on the Releases page.
# Extract all metadata
oxidex photo.jpg
# Extract specific tags
oxidex -Make -Model -DateTimeOriginal photo.jpg
# Write metadata
oxidex -Artist="Your Name" photo.jpg
# Batch processing
oxidex -r /path/to/photos/
# JSON output
oxidex -json photo.jpgBuild with the magika feature to enable Google's deep learning model for
enhanced file type identification (~99% accuracy across 200+ formats),
selectable at runtime with --detector=magika:
cargo build --release --features magika
oxidex --detector=magika unknown_file- User Guide - Installation, usage, and format support
- Benchmarks - Performance comparison with Perl ExifTool
- API Reference - Rust library documentation
- AI Harness - The autonomous fleet that closes ExifTool tag-coverage gaps, and its measured results
- GitHub Issues - Bug reports and feature requests
Tag coverage is extended by an autonomous AI harness ("the fleet") that compares OxiDex against real ExifTool, asks a language model to patch the gaps it finds, and puts every candidate patch through a gate stack — apply, build, re-compare, targeted tests, duplicate check, reviewer, full test suite — before anything is committed.
docs/AI_HARNESS.md documents how it works end to end and what it has actually produced: 67 tag gaps closed with measured evidence, per-model patch-apply rates, a full failure taxonomy, and an explicit list of the figures that could not be measured.
Install development tools via Homebrew:
brew install cargo-watch cargo-nextest cargo-audit cargo-outdatedInstall additional tools via Cargo:
cargo install cargo-tarpaulinThis project uses just as a command runner. Run just to see all available commands:
just # List all commands
just ci # Run full CI checks
just test # Run all tests
just lint # Run clippy linter
just fmt # Format codeContributions welcome! Please ensure:
- Tests pass (
cargo test) - Code is formatted (
cargo fmt) - Clippy lints pass (
cargo clippy)
Inspired by and compatible with ExifTool by Phil Harvey. OxiDex is an independent reimplementation.