Crate xmp_toolkit

source ·
Expand description

XMP Toolkit bindings for Rust

CI Latest Version codecov

Adobe’s Extensible Metadata Platform (XMP) 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.

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.

Contributions and feedback

We welcome contributions to this project. For information on contributing, providing feedback, and about ongoing work, see Contributing.

Requirements

The toolkit requires Rust version 1.56.0 or newer.

Supported platforms

The toolkit has been tested on the following operating systems:

  • Windows
  • MacOS (Intel and Apple silicon)
  • Ubuntu Linux

C++ XMP Toolkit

This crate incorporates the June 2022 version of the C++ Adobe XMP Toolkit SDK.

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

Upgrading from earlier versions

This version of the crate is a 1.0 release candidate. Please see the API stabilization PR (#151) and add feedback there as appropriate.

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 the current version, see the Upgrading guide.

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

Usage

Add this to your Cargo.toml:

[dependencies]
xmp_toolkit = "0.7.5"

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 and 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.

Modules

Standard XML namespace constants.

Structs

An iterator that provides access to items within a property array.
Provides options for configuring the XMP parsing behavior provided by XmpMeta::from_str_with_options.
Provides options for configuring the XMP iteration behavior provided by XmpMeta::iter().
Provides options for configuring the XMP serialization behavior provided by XmpMeta::to_string_with_options.
The date portion of XmpDateTime.
The XmpDateTime struct allows easy conversion between ISO8601 format (the “native” representation of dates and times in XMP) and other formats.
Describes error conditions returned by most XMP Toolkit operations.
The XmpFile struct allows access to the main (document-level) metadata in a file.
Iterator over an XMP data model or a subset thereof.
An XmpMeta struct allows you to inspect and modify the data model of an XMP packet.
Value of a single property found via iterating the XMP data model.
The time portion of XmpDateTime.
The time zone portion of XmpTime.
An XMP value consists describes a simple property or an item in an array property.

Enums

Describes how a new item should be placed relative to existing items in an array.
Describes which error type occurred.

Type Definitions

A specialized Result type for XMP Toolkit operations.