[go: up one dir, main page]

mockforge-cli 0.3.0

CLI interface for MockForge
[package]
name = "mockforge-cli"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
description = "CLI interface for MockForge"
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
publish = true  # Binary crate available via cargo install

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

[dependencies]
clap = { version = "4", features = ["derive", "std", "env"] }
clap_complete = "4"
anyhow = "1.0"
tokio = { workspace = true, features = ["signal"] }
tokio-util = "0.7"
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
tracing-opentelemetry = "0.22"
mockforge-core = "0.3.0"
mockforge-http = { version = "0.3.0", optional = true }
mockforge-ws = { version = "0.3.0", optional = true }
mockforge-grpc = { version = "0.3.0", optional = true }
mockforge-graphql = { version = "0.3.0", optional = true }
mockforge-smtp = { version = "0.3.0", optional = true }
mockforge-mqtt = { version = "0.3.0", optional = true }
mockforge-data = "0.3.0"
mockforge-ui = "0.3.0"
mockforge-observability = "0.3.0"
mockforge-tracing = "0.3.0"
mockforge-recorder = "0.3.0"
mockforge-bench = "0.3.0"
mockforge-ftp = { version = "0.3.0", optional = true }
mockforge-kafka = { version = "0.3.0", optional = true }
mockforge-amqp = { version = "0.3.0", optional = true }
mockforge-tcp = { version = "0.3.0", optional = true }
mockforge-tunnel = "0.3.0"
mockforge-vbr = "0.3.0"
mockforge-plugin-core = "0.3.0"
mockforge-plugin-loader = "0.3.0"
mockforge-scenarios = { version = "0.3.0", features = ["studio-packs"] }
mockforge-chaos = "0.3.0"
mockforge-schema = "0.3.0"
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = "0.9"
url = { workspace = true }
regex = "1.10"
base64 = { workspace = true }
axum = { workspace = true }
hyper = { workspace = true }
reqwest = { workspace = true, features = ["multipart"] }
tempfile = "3.8"
rumqttc = { version = "0.24", optional = true }
hex = { workspace = true }
zip = "2.2"
ring = "0.17"
urlencoding = "2.1"
colored = "2.2"
indicatif = "0.17"
console = "0.15"
dialoguer = "0.11"
dirs = "5.0"
chrono = { version = "0.4", features = ["serde"] }
uuid = { workspace = true }
openapiv3 = "2.0"
async-trait = "0.1"
lapin = { version = "2.3", optional = true }
rdkafka = { version = "0.38", optional = true }
futures-lite = { version = "2.0", optional = true }
# Speech-to-text dependencies
vosk = { version = "0.3", optional = true }
cpal = { version = "0.15", optional = true }
hound = { version = "3.5", optional = true }

[features]
default = ["http", "mqtt", "ws", "grpc", "graphql", "ftp", "amqp", "kafka", "smtp", "tcp"]
# Speech-to-text features
stt-cloud = []  # Cloud API backends (OpenAI Whisper, Google Speech-to-Text)
stt-vosk = ["vosk", "cpal", "hound"]  # Offline STT using vosk-rs
stt-all = ["stt-cloud", "stt-vosk"]
# Studio packs feature (requires mockforge-scenarios with studio-packs feature)
studio-packs = ["mockforge-scenarios/studio-packs"]
http = ["mockforge-http"]
mqtt = ["mockforge-mqtt", "mockforge-http/mqtt", "rumqttc"]
ws = ["mockforge-ws"]
grpc = ["mockforge-grpc"]
graphql = ["mockforge-graphql"]
ftp = ["mockforge-ftp"]
kafka = ["mockforge-kafka", "rdkafka"]
amqp = ["mockforge-amqp", "lapin", "futures-lite"]
smtp = ["mockforge-smtp", "mockforge-http/smtp"]
tcp = ["mockforge-tcp"]

[dev-dependencies]
assert_cmd = "2.0"
predicates = "3.0"
tempfile = "3.8"