arti/crates/arti
Nick Mathewson 753cbc9626 In rust-nightly CI, forbid debugging prints.
This patch makes the rust-nightly CI task fail if it detects any
dbg!(), println!(), or eprintln!() calls in production code.

Because of clippy limitations, it may also gripe about calls to
these macros in our tests.  The preferred workarounds are to either
instead.  Both are acceptable.

We're doing this check in CI rather than unconditionally with clippy
directives, since we often want to have these calls in our code
temporarily while we're developing.  Some day we might want this
test to go into a pre-push hook.

This patch also adds #![allow()] directives for println!() and
eprintln!() in the arti crate.  Since that one isn't a library, it's
okay for it to speak to stdout/stderr.

Closes #218.
2021-11-04 11:13:29 -04:00
..
src In rust-nightly CI, forbid debugging prints. 2021-11-04 11:13:29 -04:00
Cargo.toml Bump all crate versions to 0.0.1 2021-10-29 11:05:51 -04:00
README.md Update README.md files 2021-10-28 19:59:22 -04:00

README.md

arti

A minimal client for connecting to the tor network

This crate is the primary command-line interface for Arti, a project to implement Tor in Rust. Many other crates in Arti depend on it.

Note that Arti is a work in progress; although we've tried to write all the critical security components, you probably shouldn't use Arti in production until it's a bit more mature.

More documentation will follow as this program improves. For now, just know that it can run as a simple SOCKS proxy over the Tor network. It will listen on port 9150 by default, but you can override this in the configuration.

Command-line interface

(This is not stable; future versions will break this.)

arti uses the clap crate for command-line argument parsing; run arti help to get it to print its documentation.

The only currently implemented subcommand is arti proxy; try arti help proxy for a list of options you can pass to it.

Configuration

By default, arti looks for its configuration files in a platform-dependent location. That's ~/.config/arti/arti.toml on Unix. (TODO document OSX and Windows.)

The configuration file is TOML. (We do not guarantee its stability.) For an example see arti_defaults.toml.

Compile-time features

tokio (default): Use the tokio runtime library as our backend.

async-std: Use the async-std runtime library as our backend. This feature has no effect unless building with --no-default-features to disable tokio.

static: Try to link a single static binary.

Limitations

There are many missing features. Among them: there's no onion service support yet. There's no anti-censorship support. You can't be a relay. There isn't any kind of proxy besides SOCKS.

See the README file for a more complete list of missing features.

License: MIT OR Apache-2.0