Skip to main content

C2PA Rust library

CI Latest Version docs.rs codecov

The Coalition for Content Provenance and Authenticity (C2PA) addresses the prevalence of misleading information online through the development of technical standards for certifying the source and history (or provenance) of media content. The C2PA Rust library is part of the Content Authenticity Initiative open-source SDK.

For the best experience, read the docs on the CAI Open Source SDK documentation website. Some additional documentation for this repository is also available on GitHub:

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:

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.