https://github.com/swack-tools/oxidex
Replicates exiftool but in rust, with some additional features.
https://github.com/swack-tools/oxidex
exiftool metadata rust
Last synced: 4 months ago
JSON representation
Replicates exiftool but in rust, with some additional features.
- Host: GitHub
- URL: https://github.com/swack-tools/oxidex
- Owner: swack-tools
- License: gpl-3.0
- Created: 2025-11-01T18:13:34.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-12-06T05:24:33.000Z (7 months ago)
- Last Synced: 2025-12-06T08:02:53.907Z (7 months ago)
- Topics: exiftool, metadata, rust
- Language: Rust
- Homepage: https://oxidex.net/
- Size: 13.9 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/contributing/.gitkeep
- License: LICENSE
Awesome Lists containing this project
README
# OxiDex
[](https://github.com/swack-tools/oxidex/actions)
[](https://crates.io/crates/oxidex)
[](LICENSE)
A high-performance Rust implementation of [ExifTool](https://exiftool.org/) for metadata extraction and manipulation.
## What is OxiDex?
OxiDex is a memory-safe, drop-in replacement for the Perl-based ExifTool. It provides the same comprehensive metadata support (32,677+ tags 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](https://oxidex.net/performance/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
## Quick Start
### Download Binary
Pre-built binaries available on the [Releases page](https://github.com/swack-tools/oxidex/releases).
## Usage
```bash
# 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
```
## Documentation
- [User Guide](https://oxidex.net/) - Installation, usage, and format support
- [Benchmarks](https://oxidex.net/performance/#benchmark-results) - Performance comparison with Perl ExifTool
- [API Reference](https://docs.rs/oxidex) - Rust library documentation
- [GitHub Issues](https://github.com/swack-tools/oxidex/issues) - Bug reports and feature requests
## Development
### Prerequisites
Install development tools via Homebrew:
```bash
brew install cargo-watch cargo-nextest cargo-audit cargo-outdated
```
Install additional tools via Cargo:
```bash
cargo install cargo-tarpaulin
```
### Just Commands
This project uses [just](https://github.com/casey/just) as a command runner. Run `just` to see all available commands:
```bash
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](LICENSE)
## Acknowledgments
Inspired by and compatible with [ExifTool](https://exiftool.org/) by Phil Harvey. OxiDex is an independent reimplementation.