xmp_toolkit 1.1.0

Rust-language bindings for Adobe's XMP Toolkit
Documentation
# XMP Toolkit bindings for Rust

[![CI](https://github.com/adobe/xmp-toolkit-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/adobe/xmp-toolkit-rs/actions/workflows/ci.yml) [![Latest Version](https://img.shields.io/crates/v/xmp_toolkit.svg)](https://crates.io/crates/xmp_toolkit) [![codecov](https://codecov.io/gh/adobe/xmp-toolkit-rs/branch/main/graph/badge.svg?token=z1yA0Y6HZK)](https://codecov.io/gh/adobe/xmp-toolkit-rs)

Adobe's **[Extensible Metadata Platform (XMP)](https://www.adobe.com/devnet/xmp.html)** is a labeling technology that allows you to embed data about a file, known as metadata, into the file itself. More information on how partners and standards are using XMP is available at the [XMP website](https://www.adobe.com/products/xmp.html).

## Key features

This XMP Toolkit crate implements a subset of the XMP metadata standard. This toolkit allows a desktop or mobile application to:

* Parse XMP metadata found in many file formats.
* Inspect and modify the XMP data model.
* Embed and update XMP metadata in many file formats.

The [`XmpMeta` struct](https://docs.rs/xmp_toolkit/latest/xmp_toolkit/struct.XmpMeta.html) contains most of the API functions for these features and is the best place to get started in understanding this crate.

## Contributions and feedback

We welcome contributions to this project. For information on contributing, providing feedback, and about ongoing work, see [Contributing](./CONTRIBUTING.md).

## Requirements

The toolkit requires **Rust version 1.56.0** or newer.

### Supported platforms

The toolkit has been tested on the following operating systems:

* Windows
  * Only the MSVC build chain is supported on Windows. As discussed in [#155]https://github.com/adobe/xmp-toolkit-rs/issues/155, we would welcome a PR to enable GNU build chain support on Windows.

* MacOS (Intel and Apple silicon)

* Ubuntu Linux on x86 and ARM v8 (aarch64)
  * On ARM, the minimum supported Rust version (MSRV) is 1.60.0.

## C++ XMP Toolkit

This crate incorporates the June 2022 version of the C++ [Adobe XMP Toolkit SDK](https://github.com/adobe/XMP-Toolkit-SDK/).

When a newer version of the C++ XMP Toolkit is incorporated, a new minor (1.x.0) version of this crate will be released.

## Upgrading from earlier versions

This API is considered to to be stable; in other words, no further breaking changes are anticipated. For instructions on how to upgrade from various 0.x versions to 1.x, see the [Upgrading guide](./UPGRADING.md).

Minor, non-breaking additions to the API surface may be added as the few remaining APIs in the C++ `XMP_Meta`, `XMP_Files`, `TXMPUtils` interfaces are exposed. Such changes will trigger minor (1.x.0) version increments when they happen.

### Usage

Add this to your `Cargo.toml`:

```toml
[dependencies]
xmp_toolkit = "1.1.0"
```

## License

The `xmp_toolkit` crate is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See [LICENSE-APACHE](./LICENSE-APACHE) and [LICENSE-MIT](./LICENSE-MIT).

Note that some components and dependent crates are licensed under different terms; please check the license terms for each crate and component for details.