mockforge-plugin-loader 0.3.16

Plugin loader with security sandboxing and validation for MockForge
Documentation
[package]
name = "mockforge-plugin-loader"
version = "0.3.16"
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
readme.workspace = true
keywords = ["plugin", "loader", "wasm", "security", "sandbox"]
categories = ["development-tools", "api-bindings"]
description = "Plugin loader with security sandboxing and validation for MockForge"

[lints.rust]
missing_docs = "deny"

[dependencies]
# Plugin core types and traits
mockforge-plugin-core = "0.3.16"

# Serialization
serde.workspace = true
serde_json.workspace = true

# Async runtime
tokio = { workspace = true, features = ["fs"] }

# Error handling
anyhow.workspace = true
thiserror.workspace = true

# Logging
tracing.workspace = true

# Utility libraries
uuid.workspace = true
regex.workspace = true

# WebAssembly runtime for plugin execution
wasmtime = "36.0.3"
wasmtime-wasi = "36.0.3"
wasmparser = "0.239"

# Plugin communication
wit-bindgen = "0.46"

# Async traits
async-trait = "0.1"

# Additional utilities
rand.workspace = true
url.workspace = true
serde_yaml.workspace = true
urlencoding.workspace = true
base64.workspace = true

# Path expansion
shellexpand = "2.1"

# Date/time handling
chrono.workspace = true

# Cryptography for plugin validation
ring = "0.17"
hex.workspace = true

# HTTP client for remote plugin downloads
reqwest = { version = "0.12", features = ["stream", "rustls-tls", "json"], default-features = false }

# Archive extraction
zip = "2.2"
flate2 = "1.0"
tar = "0.4"

# Git repository cloning
git2 = { version = "0.19", optional = true }

# Progress tracking
indicatif = "0.17"

# Directory utilities
dirs = "5.0"

# Temporary file handling
tempfile = "3.0"

[features]
default = ["git-support"]
git-support = ["git2"]

[dev-dependencies]
tokio = { workspace = true, features = ["test-util"] }
tempfile = "3.0"
wiremock = "0.6"