Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,249 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OxiDex

CI Crates.io License: GPL-3.0

A high-performance Rust implementation of ExifTool for metadata extraction and manipulation.

What is OxiDex?

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.

Why OxiDex?

  • 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)

Quick Start

Download Binary

Pre-built binaries available on the Releases page.

Usage

# 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.jpg

Optional: Magika AI-Powered Detection

Build 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

Documentation

  • 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

Closing the parity gap

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.

Development

Prerequisites

Install development tools via Homebrew:

brew install cargo-watch cargo-nextest cargo-audit cargo-outdated

Install additional tools via Cargo:

cargo install cargo-tarpaulin

Just Commands

This 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 code

Contributing

Contributions welcome! Please ensure:

  • Tests pass (cargo test)
  • Code is formatted (cargo fmt)
  • Clippy lints pass (cargo clippy)

License

GPL-3.0

Acknowledgments

Inspired by and compatible with ExifTool by Phil Harvey. OxiDex is an independent reimplementation.

About

Replicates exiftool but in rust, with some additional features.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages