Warning
This repository and the c2pa-node
package are deprecated. Use c2pa-node-v2 instead.
The c2pa-node repository implements a Node.js API that can:
- Read and validate C2PA data from media files in supported formats.
- Add signed manifests to media files in supported formats.
For more information on using the library in an application, see Using the CAI Node library.
Additional documentation:
To use the C2PA Node library, you must install:
If you need to manage multiple versions of Node on your machine, use a tool such as nvm.
Using npm:
$ npm install c2pa-node
Using Yarn:
$ yarn add c2pa-node
Using pnpm:
$ pnpm add c2pa-node
This command will download precompiled binaries for the following systems:
- Linux x86_64
- Linux aarch64 (ARM)
- macOS aarch64 (Apple Silicon)
- macOS x86_64 (Intel Mac)
- Windows x86
- Windows ARM
All other platforms require building a custom binary as described below, since the postinstall
step builds the Rust library into a native Node.js module on your machine.
For a platform or architecture that does not have a precompiled binary, you must pre-build a custom binary by following these steps:
- Install the Rust toolchain.
- Run the following commands on the target system or VM:
cd c2pa-node
pnpm install
pnpm build:rust
- Copy the binary to a place that is accessible by your application (in this example, it is
/path/to/my/application/resources
):
cd /path/to/my/application
mkdir resources
cp /path/to/c2pa-node/generated/c2pa.node resources/c2pa.node
- Set the the
C2PA_LIBRARY_PATH
environment variable to the path to thec2pa.node
module by entering these commands:
export C2PA_LIBRARY_PATH=resources/c2pa.node
npm install c2pa-node
npm start
Important: C2PA_LIBRARY_PATH
must be set while both installing or adding c2pa-node
to your app to avoid building the Rust code. It must also be set while running your app so that it loads the bindings from the correct location.