[package]
name = "tocat"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
description = "A socat-inspired relay with a config file and a plugin pipeline"
readme = "README.md"
repository.workspace = true
license.workspace = true
keywords.workspace = true
categories = ["command-line-utilities", "network-programming"]
[dependencies]
anyhow = { workspace = true }
clap = { workspace = true }
console-subscriber = { version = "0.5.0", optional = true }
futures = "0.3.33"
futures-util = "0.3.33"
pty-process = { version = "0.5.3", features = ["async"] }
rustix = { version = "1.1.4", features = ["fs", "pipe", "pty", "termios"] }
serde = { workspace = true }
serde_json = { workspace = true }
tocat-api = { workspace = true }
tocat-plugins = { workspace = true }
tokio = {
version = "1.53.1",
features = [
"fs",
"io-std",
"io-util",
"macros",
"net",
"process",
"rt",
"rt-multi-thread",
"signal",
"sync",
"time"
]
}
tokio-seqpacket = "0.9.1"
tokio-util = { version = "0.7.19", features = ["rt"] }
toml = "1.1.4"
tracing = "0.1.44"
tracing-appender = "0.2.5"
tracing-subscriber = { version = "0.3.23", features = ["env-filter", "json"] }
[features]
default = ["all-plugins", "schema"]
all-plugins = [
"base64",
"block",
"compress",
"frame",
"hash",
"hexify",
"limit",
"process",
"rate",
"tee",
"throttle",
"timeout",
"wasm"
]
all-plugins-no-wasm = [
"base64",
"block",
"compress",
"frame",
"hash",
"hexify",
"limit",
"process",
"rate",
"tee",
"throttle",
"timeout",
]
base64 = ["tocat-plugins/base64"]
block = ["tocat-plugins/block"]
compress = ["tocat-plugins/compress"]
frame = ["tocat-plugins/frame"]
hash = ["tocat-plugins/hash"]
hexify = ["tocat-plugins/hexify"]
limit = ["tocat-plugins/limit"]
process = ["tocat-plugins/process"]
rate = ["tocat-plugins/rate"]
schema = []
tee = ["tocat-plugins/tee"]
throttle = ["tocat-plugins/throttle"]
timeout = ["tocat-plugins/timeout"]
tokio-console = ["dep:console-subscriber"]
wasm = ["tocat-plugins/wasm"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(tokio_unstable)"] }