mockforge-plugin-cli 0.3.117

CLI tool for developing MockForge plugins
[package]
name = "mockforge-plugin-cli"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
description = "CLI tool for developing MockForge plugins"
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
readme.workspace = true
keywords = ["mockforge", "plugin", "cli", "wasm", "tool"]
categories = ["development-tools", "command-line-utilities"]
publish = true  # Binary tool for plugin development, not a library

[[bin]]
name = "mockforge-plugin"
path = "src/main.rs"

[dependencies]
# CLI framework
# `env` feature lets the new `key` subcommand read the registry URL and
# token from env vars for scripting.
clap = { version = "4", features = ["derive", "env"] }

# Registry key-management HTTP client.
reqwest = { version = "0.12", features = ["json", "rustls-tls", "multipart"], default-features = false }
base64 = "0.21"
uuid = { version = "1", features = ["v4"] }

# Ed25519 key generation + signing for the `key gen` and
# `publish --sign` commands. We use the library's own PKCS#8 encoder
# so generated keys load cleanly into `openssl`, `ssh-keygen`, and any
# other tool that reads PKCS#8.
ed25519-dalek = { version = "2", default-features = false, features = ["std", "rand_core", "pkcs8", "pem"] }
rand = { workspace = true }

# RFC 8785 (JCS) canonical JSON. Pulled from the workspace so the CLI
# signer and registry server verifier always agree on which version is
# canonical — see `[workspace.dependencies]` in the repo root Cargo.toml.
serde_jcs = { workspace = true }

# Template engine
handlebars = "6.2"

# Serialization
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
toml = "0.8"

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

# Filesystem
walkdir = "2.5"
glob = "0.3"

# Compression and archives
zip = "2.2"
sha2 = "0.10"
hex = "0.4"

# Process execution
tokio = { workspace = true, features = ["process", "macros"] }

# Colored output
colored = "2.2"

# Progress and UI
indicatif = "0.17"

# Date/time
chrono = { workspace = true }

[dev-dependencies]
tempfile = "3"