[package]
name = "proofmode"
version = "0.8.3"
edition = "2021"
description = "Capture, share, and preserve verifiable photos and videos"
license = "Apache-2.0"
homepage = "https://proofmode.org"
repository = "https://gitlab.com/guardianproject/proofmode/proofmode-rust"
authors = ["Guardian Project <support@guardianproject.info>"]
keywords = ["proofmode", "verification", "cryptography", "media", "authentication"]
categories = ["command-line-utilities", "cryptography", "multimedia"]
[features]
default = [
"clap", "reqwest", "sequoia-openpgp", "polars", "c2pa", "sign"
]
wasm = [
"c2pa",
"polars",
"js-sys",
"serde-wasm-bindgen",
"wasm-bindgen",
"wasm-bindgen-file-reader",
"wasm-bindgen-futures",
"web-sys"
]
uniffi = ["dep:uniffi"]
python = ["uniffi"]
ruby = ["uniffi"]
mobile = ["uniffi"]
sign = [
"p256", "rand_core", "base64", "rcgen", "openssl", "x509-parser",
"ciborium", "byteorder", "jsonwebtoken", "async-trait", "log",
"der-parser", "tokio", "reqwest"
]
[dependencies]
clap = { version = "4", features = ["derive"], optional = true }
reqwest = { version = "0.13", features = ["blocking", "json", "form"], optional = true }
c2pa = { version = "0.75", default-features = false, features = ["rust_native_crypto"], optional = true }
chrono = { version = "0.4", features = ["serde"] }
geo = "0.32"
geojson = "0.24"
hex = "0.4"
kamadak-exif = "0.6"
mime_guess = "2"
opentimestamps = "0.2"
pgp = { version = "0.19", features = ["wasm"] }
polars = { version = "0.52", default-features = false, features = ["json", "fmt_no_tty"], optional = true }
serde = "1"
serde-this-or-that = "0.5"
serde_json = "1"
sha2 = "0.10"
thiserror = "2"
uuid = { version = "1", features = ["v4", "js"] }
js-sys = { version = "0.3", optional = true }
serde-wasm-bindgen = { version = "0.6", optional = true }
wasm-bindgen = { version = "0.2", optional = true }
wasm-bindgen-file-reader = { version = "1", optional = true }
wasm-bindgen-futures = { version = "0.4", optional = true }
web-sys = { version = "0.3", features = [ 'File',
'Request',
'Headers',
'RequestInit',
'RequestMode',
'Response',
'Window',
'console',
'WorkerGlobalScope'
], optional = true }
zip = { version = "7", default-features = false, features = ["deflate"] }
sequoia-openpgp = { version = "2", optional = true }
anyhow = "1"
toml = "1"
uniffi = { version = "0.31", features = ["cli"], optional = true }
p256 = { version = "0.13", features = ["ecdsa"], optional = true }
rand_core = { version = "0.9", features = ["os_rng"], optional = true }
base64 = { version = "0.22", optional = true }
rcgen = { version = "0.13", features = ["x509-parser"], optional = true }
openssl = { version = "0.10", optional = true }
x509-parser = { version = "0.16", optional = true }
ciborium = { version = "0.2", optional = true }
byteorder = { version = "1.4", optional = true }
jsonwebtoken = { version = "9", optional = true }
async-trait = { version = "0.1", optional = true }
log = { version = "0.4", optional = true }
der-parser = { version = "9", optional = true }
tokio = { version = "1", features = ["rt"], optional = true }
[lib]
name = "proofmode"
crate-type = ["cdylib", "staticlib", "lib"]
[[bin]]
name = "proofmode"
path = "src/main.rs"
required-features = ["clap"]
[[bin]]
name = "generate_makefile"
path = "src/bin/generate_makefile.rs"
[[bin]]
name = "generate_bindings"
path = "src/bin/generate_bindings.rs"
required-features = ["uniffi"]
[[bin]]
name = "uniffi-bindgen"
path = "src/bin/uniffi-bindgen.rs"
required-features = ["uniffi"]
[dev-dependencies]
tempfile = "3"