[package]
name = "greentic-component"
version.workspace=true
edition = "2024"
rust-version = "1.89"
license = "MIT"
description = "High-level component loader and store for Greentic components"
repository = "https://github.com/greentic-ai/greentic-component"
homepage = "https://github.com/greentic-ai/greentic-component"
documentation = "https://docs.rs/greentic-component"
keywords = ["greentic", "component", "wasm"]
categories = ["wasm"]
include = [
"Cargo.toml",
"assets/**",
"examples/**",
"schemas/**",
"src/**",
"tests/**",
]
[lib]
path = "src/lib.rs"
[features]
default = ["oci", "cli"]
oci = ["dep:oci-distribution"]
schema = ["dep:schemars"]
abi = ["dep:wit-component", "dep:wit-parser", "dep:wasmparser"]
describe = ["abi"]
loader = ["describe"]
prepare = ["loader", "dep:dashmap"]
cli = [
"prepare",
"dep:clap",
"dep:include_dir",
"dep:handlebars",
"dep:walkdir",
"dep:tempfile",
"dep:miette",
]
[dependencies]
anyhow = { workspace = true }
blake3 = { workspace = true }
bytes = { workspace = true }
clap = { workspace = true, optional = true }
directories = { workspace = true }
hex = { workspace = true }
ignore = { workspace = true }
include_dir = { workspace = true, optional = true }
handlebars = { workspace = true, optional = true }
miette = { workspace = true, optional = true }
jsonschema = { workspace = true }
greentic-component-manifest = { workspace = true }
oci-distribution = { workspace = true, optional = true }
once_cell = { workspace = true }
pathdiff = { workspace = true }
regex = { workspace = true }
schemars = { workspace = true, optional = true }
semver = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_with = { workspace = true }
sha2 = { workspace = true }
thiserror = { workspace = true }
displaydoc = { workspace = true }
dashmap = { workspace = true, optional = true }
time = { workspace = true }
tokio = { workspace = true }
tracing = { workspace = true }
tempfile = { workspace = true, optional = true }
walkdir = { workspace = true, optional = true }
wit-component = { workspace = true, optional = true }
wit-parser = { workspace = true, optional = true }
wasmparser = { workspace = true, optional = true }
wasm-metadata = { workspace = true }
greentic-types = { workspace = true }
[dev-dependencies]
assert_fs = { workspace = true }
tempfile = { workspace = true }
tokio = { workspace = true }
wasm-encoder = { workspace = true }
assert_cmd = { workspace = true }
predicates = { workspace = true }
insta = { workspace = true }
greentic-interfaces-guest = { workspace = true }
[[example]]
name = "gen_fixture"
required-features = ["abi"]