C2PA Rust library
Key features
The c2pa-rs repository implements a subset of the C2PA technical specification in the Rust programming language.
The library enables a desktop, mobile, or embedded application to:
- Create and sign C2PA claims and manifests.
- Embed manifests in supported file formats.
- Parse and validate manifests found in supported file formats.
The library supports several common C2PA assertions and hard bindings.
For details on what you can do with the library, see Using the Rust library.
State of the project
This is a beta release (version 0.x.x) of the project. The minor version number (0.x.0) is incremented when there are breaking API changes, which may happen frequently.
New API
NOTE: The current release includes a new API that replaces old methods of reading and writing C2PA data, which are deprecated. See the release notes for more information.
Rust language requirement (MSRV)
The c2pa
crate requires Rust version 1.81.0 or newer. When a newer version of Rust becomes required, a new minor (0.x.0) version of this crate will be released.
Contributions and feedback
We welcome contributions to this project. For information on contributing, providing feedback, and about ongoing work, see Contributing. For additional information on nightly builds and testing, see Contributing to the project.
License
The c2pa
crate is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
Some components and dependent crates are licensed under different terms; please check their licenses for details.