Slipstream is a high-performance DNS tunnel that carries QUIC packets over DNS queries and responses. This repository hosts the Rust rewrite of the original C implementation.
Prereqs:
Initialize the picoquic submodule:
git submodule update --init --recursive
On non-Windows hosts, cargo build will auto-build picoquic via
./scripts/build_picoquic.sh when libs are missing (outputs to
.picoquic-build/). For Windows MSVC targets, dot-source the helper in the
same PowerShell session before building with Cargo. Use
. ./scripts/build_picoquic_windows.ps1 for x86_64, or pass -Platform ARM64
for ARM64. See docs/build.md for details.
Build the Rust binaries:
cargo build -p slipstream-client -p slipstream-server
Generate a test TLS cert (optional example):
openssl req -x509 -newkey rsa:2048 -nodes \
-keyout key.pem -out cert.pem -days 365 \
-subj "/CN=slipstream"
Run the server:
cargo run -p slipstream-server -- \
--dns-listen-port 8853 \
--target-address 127.0.0.1:5201 \
--domain example.com \
--cert ./cert.pem \
--key ./key.pem \
--reset-seed ./reset-seed
If the configured cert/key paths do not exist, the server auto-generates a
self-signed ECDSA P-256 certificate (1000-year validity). If --reset-seed
is omitted, the server will warn and stateless reset tokens will not persist
across restarts.
Run the client:
cargo run -p slipstream-client -- \
--tcp-listen-port 7000 \
--resolver 127.0.0.1:8853 \
--domain example.com
Note: You can also run the client against a resolver that forwards to the server. For local testing, see the interop docs.
For a public slipstream-server on port 53, tune conntrack above many distro defaults.
Recommended baseline:
net.netfilter.nf_conntrack_max = 262144
net.netfilter.nf_conntrack_udp_timeout = 15
net.netfilter.nf_conntrack_udp_timeout_stream = 60
Sizing tiers:
131072262144524288Keep steady-state conntrack -C below about 60% of nf_conntrack_max.
All results below are end-to-end completion times in seconds (lower is better),
averaged over 5 runs on local loopback. Payload: 10 MiB in each direction.
Variants are dnstt, C-C slipstream, Rust-Rust (non-auth), and Rust-Rust (auth
via --authoritative <resolver>).
See scripts/bench for scripts used for obtaining these results.
| Variant | Exfil avg (s) | Download avg (s) |
|---|---|---|
| dnstt | 16.207 | 2.492 |
| slipstream (C) | 5.332 | 1.096 |
| slipstream-rust | 3.249 | 0.978 |
| slipstream-rust (Authoritative mode) | 1.602 | 0.407 |

Apache-2.0. See LICENSE.
$ claude mcp add slipstream-rust \
-- python -m otcore.mcp_server <graph>