tocat 0.2.0

A socat-inspired relay with a config file and a plugin pipeline
[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)"] }