[package]
edition = "2024"
rust-version = "1.93"
name = "jacs"
version = "0.9.13"
authors = ["HAI.AI <engineering@hai.io>"]
build = "build.rs"
include = [
"src/**/*",
"schemas/agent/v1/agent.schema.json",
"schemas/header/v1/header.schema.json",
"schemas/components/files/v1/files.schema.json",
"schemas/components/signature/v1/signature.schema.json",
"schemas/components/agreement/v1/agreement.schema.json",
"schemas/components/unit/v1/unit.schema.json",
"schemas/components/action/v1/action.schema.json",
"schemas/components/service/v1/service.schema.json",
"schemas/components/tool/v1/tool.schema.json",
"schemas/components/contact/v1/contact.schema.json",
"schemas/components/component/v1/component.schema.json",
"schemas/message/v1/message.schema.json",
"schemas/node/v1/node.schema.json",
"schemas/program/v1/program.schema.json",
"schemas/eval/v1/eval.schema.json",
"schemas/task/v1/task.schema.json",
"jacs.config.schema.json",
"examples/*.json",
"Cargo.toml",
"README.md",
"LICENSE",
"LICENSE-APACHE",
"LICENSE-MIT",
"build.rs",
"CHANGELOG.md",
"basic-schemas.png",
"benches/sign_and_check_sig.rs",
"schemas/components/embedding/v1/embedding.schema.json",
"schemas/agentstate/v1/agentstate.schema.json",
"schemas/commitment/v1/commitment.schema.json",
"schemas/todo/v1/todo.schema.json",
"schemas/components/todoitem/v1/todoitem.schema.json",
"schemas/attestation/v1/attestation.schema.json",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "JACS JSON AI Communication Standard"
homepage = "https://humanassisted.github.io/JACS"
readme = "README.md"
keywords = [
"cryptography",
"json",
"ai",
"data",
"ml-ops",
]
categories = [
"cryptography",
"text-processing",
"data-structures",
]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/HumanAssisted/JACS"
resolver = "3"
[package.metadata.dev-requirements]
cargo-audit = "0.22.1"
[features]
a2a = []
agreements = []
attestation = []
default = ["sqlite"]
keychain = ["dep:keyring"]
keychain-tests = ["keychain"]
otlp-logs = [
"dep:opentelemetry",
"dep:opentelemetry-otlp",
"dep:opentelemetry_sdk",
"dep:opentelemetry-appender-tracing",
"dep:tokio",
]
otlp-metrics = [
"dep:opentelemetry",
"dep:opentelemetry-otlp",
"dep:opentelemetry_sdk",
"dep:tokio",
]
otlp-tracing = [
"dep:opentelemetry",
"dep:opentelemetry-otlp",
"dep:opentelemetry_sdk",
"dep:tracing-opentelemetry",
"dep:tokio",
]
pq-tests = []
s3-tests = []
sqlite = ["dep:rusqlite"]
sqlx-sqlite = [
"dep:sqlx",
"dep:tokio",
"sqlx/sqlite",
]
[lib]
name = "jacs"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[bench]]
name = "sign_and_check_sig"
path = "benches/sign_and_check_sig.rs"
harness = false
[dependencies.aes-gcm]
version = "0.10.3"
[dependencies.base64]
version = "0.22.1"
[dependencies.chrono]
version = "0.4.40"
[dependencies.difference]
version = "2.0.0"
[dependencies.dirs]
version = "5.0"
[dependencies.encoding_rs]
version = "0.8.35"
[dependencies.env_logger]
version = "0.11.8"
[dependencies.flate2]
version = "1.1.1"
[dependencies.futures-executor]
version = "0.3.31"
[dependencies.futures-util]
version = "0.3.31"
[dependencies.getset]
version = "0.1.5"
[dependencies.hex]
version = "0.4"
[dependencies.hickory-resolver]
version = "0.24"
features = ["dnssec-ring"]
[dependencies.hkdf]
version = "0.12"
[dependencies.jsonschema]
version = "0.29"
features = [
"resolve-http",
"resolve-file",
]
[dependencies.lazy_static]
version = "1.5"
[dependencies.log]
version = "0.4.27"
[dependencies.mail-parser]
version = "0.11"
[dependencies.mime_guess]
version = "2.0.5"
[dependencies.moka]
version = "0.12"
features = ["sync"]
[dependencies.opentelemetry]
version = "0.30.0"
optional = true
[dependencies.opentelemetry-appender-tracing]
version = "0.30.1"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.30.0"
features = [
"trace",
"logs",
"metrics",
"http-proto",
"reqwest-blocking-client",
"reqwest-rustls",
]
optional = true
default-features = false
[dependencies.opentelemetry_sdk]
version = "0.30.0"
features = [
"rt-tokio",
"experimental_metrics_custom_reader",
]
optional = true
[dependencies.pbkdf2]
version = "0.12"
features = ["simple"]
[dependencies.pem]
version = "3.0.5"
[dependencies.phf]
version = "0.11.3"
features = ["macros"]
[dependencies.rand]
version = "0.9.0"
[dependencies.referencing]
version = "0.33.0"
[dependencies.regex]
version = "1.11.1"
[dependencies.rpassword]
version = "7.3.1"
[dependencies.rsa]
version = "0.9.8"
features = [
"sha2",
"pem",
]
[dependencies.secrecy]
version = "0.10.3"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_json_canonicalizer]
version = "0.3.2"
[dependencies.serde_yaml_ng]
version = "0.10"
[dependencies.sha2]
version = "0.10.8"
[dependencies.signature]
version = "2.2.0"
[dependencies.strum]
version = "0.27.1"
[dependencies.strum_macros]
version = "0.27.0"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1.0"
features = ["rt-multi-thread"]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-appender]
version = "0.2"
[dependencies.tracing-opentelemetry]
version = "0.31"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"fmt",
]
[dependencies.unicode-normalization]
version = "0.1"
[dependencies.url]
version = "2.5.4"
[dependencies.uuid]
version = "1.16.0"
features = [
"v4",
"v7",
"js",
]
[dependencies.validator]
version = "0.20.0"
[dependencies.zeroize]
version = "1.8"
[dev-dependencies.assert_cmd]
version = "2.0"
[dev-dependencies.color-eyre]
version = "0.6"
[dev-dependencies.criterion]
version = "0.6.0"
[dev-dependencies.futures]
version = "0.3"
[dev-dependencies.mdbook]
version = "0.4.48"
[dev-dependencies.predicates]
version = "3.1"
[dev-dependencies.reqwest]
version = "0.13.2"
features = ["rustls"]
default-features = false
[dev-dependencies.serial_test]
version = "3.2.0"
[dev-dependencies.tempfile]
version = "3.19.1"
[dev-dependencies.testcontainers]
version = "0.27"
[dev-dependencies.testcontainers-modules]
version = "0.15"
features = ["minio"]
[dev-dependencies.tokio]
version = "1.0"
features = [
"rt-multi-thread",
"macros",
"time",
]
[target.'cfg(not(any(target_os = "macos", target_os = "linux")))'.dependencies.keyring]
version = "3.6"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.fips203]
version = "0.4.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.fips204]
version = "0.4.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.object_store]
version = "0.12.0"
features = [
"serde",
"serde_json",
"aws",
"http",
]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.reqwest]
version = "0.13.2"
features = [
"blocking",
"json",
"rustls",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.ring]
version = "0.17.9"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rusqlite]
version = "0.32.1"
features = ["bundled"]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.sqlx]
version = "0.8.6"
features = ["runtime-tokio-rustls"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.walkdir]
version = "2.5.0"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2.100"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
"Storage",
"Window",
]
[target.'cfg(target_os = "linux")'.dependencies.keyring]
version = "3.6"
features = ["sync-secret-service"]
optional = true
[target.'cfg(target_os = "macos")'.dependencies.keyring]
version = "3.6"
features = ["apple-native"]
optional = true
[target."cfg(unix)".dependencies.libc]
version = "0.2"