Rust library for read/write access to media-file metadata (Exif, XMP, and IPTC)
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


build-badge   downloads-badge   version-badge   license-badge  

Rust library for working with media file metadata

This library provides a Rust wrapper around the gexiv2 library, which is a GObject-based wrapper around the Exiv2 library, which provides read and write access to the Exif, XMP, and IPTC metadata in media files (typically photos) in various formats.


API documentation is available online.

Exiv2’s homepage has documentation on available namespaces and tags.

gexiv2’s APIs may also be a useful reference, along with Exiv2’s API docs.

During development and testing, the Exiv2 command-line utility may come in handy.

Setup & Dependencies

rexiv2 requires Rust 1.20 or newer.

Being a wrapper for gexiv2 and Exiv2, rexiv2 obviously depends on them. These libraries are not bundled with rexiv2: you will need to install them separately.

gexiv2 is supported from version 0.10 onwards, and Exiv2 from version 0.23.

For full instructions on how to get started with rexiv2, including how to install the prerequisite dependencies, refer to the SETUP file.

Versioning & History

rexiv2 is currently available as a pre-1.0 development version.

Version numbers follow the principles of Semantic Versioning.

No further breaking API changes are planned, but they are possible as a result of feedback on the API as more users try it out. Such feedback is welcome, and having the API tried out in real applications is part of ensuring it’s ready for a 1.0 release.

See the CHANGELOG file for a history of released versions.

Contributions & Bug Reports

Contributions are gladly accepted, either through GitHub pull requests or by mailing patches to (PGP key 8569B6311EE485F8).

By contributing, you are agreeing to make your contribution available under the same license terms as the rest of the project.

Bug reports and feature requests can also be sent through GitHub Issues or by email, and are very welcome and appreciated.

For more information, see the CONTRIBUTING file.

Copyright & License

The Exiv2 and gexiv2 libraries are both released under the terms of the GNU General Public License (GPL), and since rexiv2 is linked to them, it too is made available under the terms of the GPL. Specifically:

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see

Please refer to the LICENSE file for a full copy of the license.