Skip to content

unblockable/proteus

Repository files navigation

Proteus

Proteus symbol

Lint Checks Unit and Integration Tests System Tests in Shadow

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.

Easy install

cargo install --git https://github.com/unblockable/proteus
proteus --help

Usage

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.

Development notes

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

Research notes

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},
}

About

Proteus: Programmable Protocols for Censorship Circumvention

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages