Cargo Features

[dependencies]
rathole = { version = "0.5.0", default-features = false, features = ["server", "client", "tls", "noise", "websocket", "hot-reload", "embedded", "console"] }
default = client, hot-reload, noise, server, tls, websocket

These default features are set whenever rathole is added without default-features = false somewhere in the dependency tree.

server default embedded?

Run as a server

client default embedded?

Run as a client

tls default websocket = tokio-native-tls

TLS support

noise default embedded? = base64, snowstorm

Noise support

websocket default = futures-core, futures-sink, tls, tokio-tungstenite, tokio-util

Websocket support

hot-reload default embedded? = notify

Configuration hot-reload support

embedded = client, hot-reload, noise, server

Default feature releasing embedded devices
Cross-compiling with tls is hard. So we don't :(

console = console-subscriber

Feature to enable tokio-console. Disabled by default.
Don't enable it unless for debugging purposes.

Enables tracing of tokio

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

tokio-native-tls tls
snowstorm noise
base64 noise

Enables base64 ^0.13

notify hot-reload

Enables notify ^5.0.0-pre.13

console-subscriber console?

Enables console-subscriber ^0.1

tokio-tungstenite websocket

Enables tokio-tungstenite ^0.20.1

tokio-util websocket
futures-core websocket
futures-sink websocket