skill-runtime 0.3.0

Core execution engine for Skill - WASM sandbox, Docker runtime, and native skill execution
Documentation
[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]
# WASM runtime
wasmtime = { workspace = true }
wasmtime-wasi = { workspace = true }
wit-bindgen = { workspace = true }
cap-std = "3.4"

# Async
tokio = { workspace = true }
futures = { workspace = true }

# Serialization
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
bincode = "1.3"

# Error handling
anyhow = { workspace = true }
thiserror = { workspace = true }

# Logging
tracing = { workspace = true }

# Security
keyring = { workspace = true }
ring = { workspace = true }
zeroize = { workspace = true }

# Async utilities
async-trait = { workspace = true }

# Utilities
bytes = { workspace = true }
dirs = { workspace = true }
walkdir = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
blake3 = { workspace = true }

# Git support (vendored for static linking)
git2 = { version = "0.18", default-features = false, features = ["vendored-libgit2", "vendored-openssl", "https"] }
url = "2.5"
serde_yaml = "0.9"

# Markdown parsing for SKILL.md
pulldown-cmark = "0.10"

# AI/ML - Embeddings
rig-core = { workspace = true }
rig-fastembed = { workspace = true }
fastembed = { workspace = true, optional = true }
tiktoken-rs = { workspace = true, optional = true }

# AI/ML - LLM providers for generation
ollama-rs = { workspace = true, optional = true }
async-openai = { workspace = true, optional = true }

# Streaming
tokio-stream = { workspace = true }
async-stream = { workspace = true }
futures-util = { workspace = true }
pin-project-lite = { workspace = true }

# Vector databases
qdrant-client = { workspace = true, optional = true }

# Search
tantivy = { workspace = true, optional = true }

# Background job processing
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 processing backends
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 }