wsrx 0.2.21

Controlled TCP-over-WebSocket forwarding tunnel.
Documentation
[package]
name = "wsrx"
version = "0.2.21"
edition = "2021"
authors = ["Reverier-Xu <reverier.xu@xdsec.club>"]
description = "Controlled TCP-over-WebSocket forwarding tunnel."
homepage = "https://github.com/ret2shell/wsrx"
documentation = "https://docs.rs/wsrx"
repository = "https://github.com/ret2shell/wsrx"
readme = "../README.md"
rust-version = "1.77.0"
license = "MIT"
resolver = "2"

[features]
default = []
server = ["dep:axum"]
client = ["dep:tokio-tungstenite"]
binary = [
    "dep:clap",
    "dep:once_cell",
    "dep:tracing",
    "dep:url",
    "dep:tower-http",
    "dep:serde",
    "dep:serde_json",
    "dep:tracing-subscriber",
    "dep:subprocess",
    "dep:chrono",
    "server",
    "client",
]

[[bin]]
name = "wsrx"
required-features = ["binary"]

[dependencies]
tokio = { version = "1.39", features = ["full"] }
rustls = { version = "0.23", features = ["ring"] }
futures-util = { version = "0.3", features = ["sink"] }
tokio-util = { version = "0.7", features = ["codec"] }
thiserror = "1.0"

# optional
axum = { version = "0.7", features = ["ws", "macros"], optional = true }
tokio-tungstenite = { version = "0.23", features = [
    "rustls-tls-native-roots",
], optional = true }

# binary cli only
clap = { version = "4.5", features = ["derive"], optional = true }
once_cell = { version = "1.19", optional = true }
tracing = { version = "0.1", optional = true }
tracing-subscriber = { version = "0.3", features = [
    "env-filter", "json"
], optional = true }
url = { version = "2.5", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
serde_json = { version = "1.0", optional = true }
tower-http = { version = "0.5", features = ["trace", "cors"], optional = true }
subprocess = { version = "0.2", optional = true }
chrono = { version = "0.4", optional = true }