[package]
name = "skill-runtime"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Core execution engine for Skill - WASM sandbox, Docker runtime, and native skill execution"
keywords = ["wasm", "runtime", "sandbox", "wasmtime", "skills"]
categories = ["wasm", "development-tools"]
[dependencies]
wasmtime = { workspace = true }
wasmtime-wasi = { workspace = true }
wit-bindgen = { workspace = true }
cap-std = "3.4"
tokio = { workspace = true }
futures = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
bincode = "1.3"
anyhow = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
keyring = { workspace = true }
ring = { workspace = true }
zeroize = { workspace = true }
async-trait = { workspace = true }
bytes = { workspace = true }
dirs = { workspace = true }
walkdir = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
blake3 = { workspace = true }
git2 = { version = "0.18", default-features = false, features = ["vendored-libgit2", "vendored-openssl", "https"] }
url = "2.5"
serde_yaml = "0.9"
pulldown-cmark = "0.10"
rig-core = { workspace = true }
rig-fastembed = { workspace = true }
fastembed = { workspace = true, optional = true }
tiktoken-rs = { workspace = true, optional = true }
ollama-rs = { workspace = true, optional = true }
async-openai = { workspace = true, optional = true }
tokio-stream = { workspace = true }
async-stream = { workspace = true }
futures-util = { workspace = true }
pin-project-lite = { workspace = true }
qdrant-client = { workspace = true, optional = true }
tantivy = { workspace = true, optional = true }
apalis = { workspace = true, optional = true }
apalis-sql = { workspace = true, optional = true }
apalis-redis = { workspace = true, optional = true }
sqlx = { workspace = true, optional = true }
[features]
default = []
qdrant = ["qdrant-client"]
hybrid-search = ["tantivy"]
reranker = ["fastembed"]
context-compression = ["tiktoken-rs"]
ai-ingestion = ["ollama-rs", "async-openai"]
ollama = ["ollama-rs"]
openai = ["async-openai"]
job-queue = ["apalis", "sqlx"]
sqlite-storage = ["job-queue", "apalis-sql", "sqlx/sqlite"]
postgres-storage = ["job-queue", "apalis-sql", "sqlx/postgres"]
redis-storage = ["apalis-redis"]
[dev-dependencies]
tempfile = { workspace = true }
mockall = { workspace = true }
[build-dependencies]
wit-bindgen = { workspace = true }