[package]
edition = "2024"
rust-version = "1.89"
name = "greentic-component"
version = "0.4.49"
build = false
include = [
"Cargo.toml",
"assets/**",
"examples/**",
"schemas/**",
"src/**",
"tests/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-level component loader and store for Greentic components"
homepage = "https://github.com/greentic-ai/greentic-component"
documentation = "https://docs.rs/greentic-component"
readme = false
keywords = [
"greentic",
"component",
"wasm",
]
categories = ["wasm"]
license = "MIT"
repository = "https://github.com/greentic-ai/greentic-component"
resolver = "2"
[features]
abi = [
"dep:wit-component",
"dep:wit-parser",
"dep:wasmparser",
]
cli = [
"prepare",
"dep:clap",
"dep:include_dir",
"dep:handlebars",
"dep:walkdir",
"dep:tempfile",
"dep:miette",
"dep:wasmtime",
"dep:greentic-interfaces",
"dep:greentic-interfaces-host",
"dep:greentic-interfaces-wasmtime",
"dep:wasmtime-wasi",
"dep:uuid",
"dep:base64",
"dep:greentic-distributor-client",
"dep:reqwest",
]
default = [
"oci",
"cli",
]
describe = ["abi"]
fuzz = ["dep:proptest"]
loader = ["describe"]
oci = ["dep:oci-distribution"]
prepare = [
"loader",
"dep:dashmap",
]
schema = ["dep:schemars"]
[lib]
name = "greentic_component"
path = "src/lib.rs"
[[bin]]
name = "component-doctor"
path = "src/bin/component-doctor.rs"
[[bin]]
name = "component-hash"
path = "src/bin/component-hash.rs"
[[bin]]
name = "component-inspect"
path = "src/bin/component-inspect.rs"
[[bin]]
name = "greentic-component"
path = "src/bin/greentic-component.rs"
[[example]]
name = "gen_contract_fixture"
path = "examples/gen_contract_fixture.rs"
required-features = ["abi"]
[[example]]
name = "gen_fixture"
path = "examples/gen_fixture.rs"
required-features = ["abi"]
[[test]]
name = "abi_tests"
path = "tests/abi_tests.rs"
[[test]]
name = "build_strictness"
path = "tests/build_strictness.rs"
[[test]]
name = "cache_and_compat"
path = "tests/cache_and_compat.rs"
[[test]]
name = "capability_tests"
path = "tests/capability_tests.rs"
[[test]]
name = "cli_tests"
path = "tests/cli_tests.rs"
[[test]]
name = "contract_tests"
path = "tests/contract_tests.rs"
[[test]]
name = "describe_tests"
path = "tests/describe_tests.rs"
[[test]]
name = "flow_regen"
path = "tests/flow_regen.rs"
[[test]]
name = "flow_update"
path = "tests/flow_update.rs"
[[test]]
name = "limits_tests"
path = "tests/limits_tests.rs"
[[test]]
name = "loader_tests"
path = "tests/loader_tests.rs"
[[test]]
name = "manifest_tests"
path = "tests/manifest_tests.rs"
[[test]]
name = "new_scaffold"
path = "tests/new_scaffold.rs"
[[test]]
name = "readme_examples"
path = "tests/readme_examples.rs"
[[test]]
name = "schema_tests"
path = "tests/schema_tests.rs"
[[test]]
name = "signing_tests"
path = "tests/signing_tests.rs"
[[test]]
name = "snapshot_util"
path = "tests/snapshot_util.rs"
[[test]]
name = "telemetry_tests"
path = "tests/telemetry_tests.rs"
[[test]]
name = "templates_snapshot"
path = "tests/templates_snapshot.rs"
[dependencies.anyhow]
version = "1"
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.blake3]
version = "1"
[dependencies.bytes]
version = "1"
[dependencies.clap]
version = "4"
features = ["derive"]
optional = true
[dependencies.dashmap]
version = "6"
optional = true
[dependencies.directories]
version = "6"
[dependencies.displaydoc]
version = "0.2"
[dependencies.greentic-component-manifest]
version = "0.4"
[dependencies.greentic-distributor-client]
version = "0.4"
features = ["dist-client"]
optional = true
default-features = false
[dependencies.greentic-interfaces]
version = "0.4"
features = [
"bindings-rust",
"common-types-v0-1",
"component-v1",
"component-v0-5",
"component-v0-4",
"describe-v1",
"provision-v0-1",
"types-core-v0-4",
"types-core-v0-2",
"wasix-mcp-v0-0-5",
"wasix-mcp-24-11-05",
"wasix-mcp-25-03-26",
"wasix-mcp-25-06-18",
"secrets-store-v1",
"state-store-v1",
"source-v1",
"build-v1",
"scan-v1",
"signing-v1",
"attestation-v1",
"policy-v1",
"metadata-v1",
"distributor-api",
"distributor-api-v1-1",
"distribution-v1",
"oci-v1",
"http-client-v1",
"http-client-v1-1",
"telemetry-logger-v1",
"repo-ui-actions-v1",
"worker-api",
"provider-common",
"provider-core-v1",
"oauth-broker-v1",
"gui-fragment",
"runner-host-v1",
]
optional = true
default-features = false
[dependencies.greentic-interfaces-host]
version = "0.4"
optional = true
[dependencies.greentic-interfaces-wasmtime]
version = "0.4"
optional = true
[dependencies.greentic-types]
version = "0.4"
[dependencies.handlebars]
version = "6"
optional = true
[dependencies.hex]
version = "0.4"
[dependencies.ignore]
version = "0.4"
[dependencies.include_dir]
version = "0.7"
optional = true
[dependencies.jsonschema]
version = "0.40"
[dependencies.miette]
version = "7"
features = ["derive"]
optional = true
default-features = false
[dependencies.oci-distribution]
version = "0.11"
optional = true
[dependencies.once_cell]
version = "1"
[dependencies.pathdiff]
version = "0.2"
[dependencies.proptest]
version = "1"
optional = true
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
"blocking",
]
optional = true
default-features = false
[dependencies.schemars]
version = "1"
optional = true
[dependencies.semver]
version = "1"
features = ["serde"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_with]
version = "3"
[dependencies.sha2]
version = "0.10"
[dependencies.tempfile]
version = "3"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.time]
version = "0.3"
features = [
"serde",
"formatting",
"parsing",
]
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"sync",
"fs",
"time",
"io-util",
]
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = ["v4"]
optional = true
[dependencies.walkdir]
version = "2"
optional = true
[dependencies.wasm-metadata]
version = "0"
[dependencies.wasmparser]
version = "0"
optional = true
[dependencies.wasmtime]
version = "41"
features = [
"component-model",
"cranelift",
"runtime",
]
optional = true
default-features = false
[dependencies.wasmtime-wasi]
version = "41"
optional = true
[dependencies.wit-component]
version = "0.244"
optional = true
[dependencies.wit-parser]
version = "0.244"
optional = true
[dev-dependencies.assert_cmd]
version = "2"
[dev-dependencies.assert_fs]
version = "1"
[dev-dependencies.greentic-interfaces-guest]
version = "0.4"
[dev-dependencies.insta]
version = "1"
features = [
"glob",
"json",
]
[dev-dependencies.predicates]
version = "3"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"sync",
"fs",
"time",
"io-util",
]
[dev-dependencies.wasm-encoder]
version = "0"