[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"
axum = { version = "0.7", features = ["ws", "macros"], optional = true }
tokio-tungstenite = { version = "0.23", features = [
"rustls-tls-native-roots",
], optional = true }
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 }