
Proteus is a tool for establishing network communication tunnels to a proxy server using network protocols that can be programmed by users.
Caution
Proteus is experimental and not recommended for security-critical applications.
cargo install --git https://github.com/unblockable/proteus
proteus --help
Proteus can currently be run as a pluggable transport using the v1
specification. The main configuration item needed is a protocol specification
file (PSF) which proteus will compile and run for each connection between a
client and proxy server. See tests/fixtures
for example PSFs.
Debug build (also used for tests):
cargo build
Release build (optimized):
cargo build --release
Run tests:
cargo test
Run system tests (need [shadow
, tgen
, tor
, python3
] in $PATH,
output stored in target/tests/...
):
cargo test -- --ignored
Maintain standard code formatting:
cargo +nightly fmt -- --config-path rustfmt-nightly.toml
Maintain clippy standards:
cargo clippy --all-targets -- -Dwarnings
Pluggable Transport v1 specifications
- https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt
- https://gitweb.torproject.org/torspec.git/tree/ext-orport-spec.txt
You can read more technical details about our vision for Proteus in the following publication:
Proteus: Programmable Protocols for Censorship Circumvention.
Ryan Wails,
Rob Jansen,
Aaron Johnson, and
Micah Sherr.
Workshop on Free and Open Communication on the Internet, 2023.
Cite our work:
@inproceedings{proteus-foci2023,
title = {Proteus: Programmable Protocols for Censorship Circumvention},
author = {Wails, Ryan and Jansen, Rob and Johnson, Aaron and Sherr, Micah},
booktitle = {Workshop on Free and Open Communication on the Internet},
year = {2023},
}