[package]
edition = "2021"
rust-version = "1.78"
name = "shell-tunnel"
version = "0.9.3"
authors = ["iyulab"]
build = false
exclude = [
".github/",
"local-docs/",
"docs/",
"tests/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Ultra-lightweight remote shell gateway with a REST/WebSocket API"
homepage = "https://github.com/iyulab/shell-tunnel"
documentation = "https://docs.rs/shell-tunnel"
readme = "README.md"
keywords = [
"shell",
"tunnel",
"pty",
"api",
"remote",
]
categories = [
"command-line-utilities",
"development-tools",
"api-bindings",
]
license = "MIT"
repository = "https://github.com/iyulab/shell-tunnel"
[features]
default = []
relay-client = [
"dep:tokio-tungstenite",
"dep:rustls",
"dep:rustls-pemfile",
"dep:webpki-roots",
"dep:ring",
]
self-update = ["dep:self_update"]
tls = [
"dep:axum-server",
"dep:rustls",
"dep:rustls-pemfile",
"dep:rcgen",
"dep:ring",
]
[lib]
name = "shell_tunnel"
path = "src/lib.rs"
[[bin]]
name = "shell-tunnel"
path = "src/main.rs"
[dependencies.axum]
version = "0.8"
features = ["ws"]
[dependencies.axum-server]
version = "0.8"
features = ["tls-rustls-no-provider"]
optional = true
default-features = false
[dependencies.futures-util]
version = "0.3"
[dependencies.getrandom]
version = "0.3"
[dependencies.lexopt]
version = "0.3"
[dependencies.portable-pty]
version = "0.9"
[dependencies.rcgen]
version = "0.14"
optional = true
[dependencies.ring]
version = "0.17"
optional = true
[dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
"tls12",
"logging",
]
optional = true
default-features = false
[dependencies.rustls-pemfile]
version = "2"
optional = true
[dependencies.self_update]
version = "0.42"
features = [
"archive-tar",
"archive-zip",
"compression-flate2",
"compression-zip-deflate",
"rustls",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.43"
features = [
"rt-multi-thread",
"io-util",
"sync",
"time",
"macros",
"signal",
]
[dependencies.tokio-tungstenite]
version = "0.24"
features = [
"connect",
"handshake",
"rustls-tls-webpki-roots",
]
optional = true
default-features = false
[dependencies.tower]
version = "0.5"
[dependencies.tower-http]
version = "0.6"
features = [
"cors",
"trace",
]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.vt100]
version = "0.16"
[dependencies.vte]
version = "0.15"
[dependencies.webpki-roots]
version = "0.26"
optional = true
[dev-dependencies.rustls-pemfile]
version = "2"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio-rustls]
version = "0.26"
features = [
"ring",
"tls12",
]
default-features = false
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.tokio-tungstenite]
version = "0.24"
features = [
"connect",
"handshake",
"rustls-tls-webpki-roots",
]
default-features = false
[target."cfg(unix)".dependencies.libc]
version = "0.2.180"
[profile.dev]
incremental = true
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true