[package]
name = "chromaframe-sdk"
description = "Deterministic, privacy-preserving color measurement and ranking SDK"
version = "0.1.0"
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/chromaframe-sdk"
readme = "README.md"
rust-version = "1.94"
keywords = ["color", "measurement", "privacy", "image"]
categories = ["computer-vision", "science"]
include = [
  "Cargo.toml",
  "README.md",
  "src/**",
  "vision-helper/README.md",
  "vision-helper/requirements.txt",
  "vision-helper/chromaframe_vision_helper/*.py",
  "vision-helper/scripts/*.py",
]

[lints]
workspace = true

[features]
default = []
icc-lcms2 = []
live-gemini = []
vision = []
vision-helper = ["vision"]

[dependencies]
async-trait = "0.1"
image = { version = "0.25", default-features = false, features = ["png", "jpeg"] }
jsonschema = { version = "0.46", default-features = false }
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls-no-provider"] }
rustls = { version = "0.23", default-features = false, features = ["ring"] }
schemars = { version = "1", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha2 = "0.11"
tempfile = "3"
thiserror = "2"
tokio = { version = "1", features = ["time", "macros", "rt-multi-thread"] }
webpki-root-certs = "1"

[dev-dependencies]
insta = { version = "1", features = ["json"] }
proptest = "1"
rstest = "0.26"
wiremock = "0.6"
