arti

A minimal command line program for connecting to the tor network

(If you want a more general Tor client library interface, use [arti_client].)

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.

| OS | Configuration File | |---------|----------------------------------------------------| | Unix | ~/.config/arti/arti.toml | | macOS | ~/Library/Application Support/arti/arti.toml | | Windows | \Users\<USERNAME>\AppData\Roaming\arti\arti.toml |

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

Compile-time features

Additive features

Build-flag related features

Cryptographic acceleration features

Libraries should not enable these by default, since they replace one implementation with another.

Experimental features

Note that the APIs enabled by these features are NOT covered by semantic versioning guarantees: we might break them or remove them between patch versions.

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.

Library for building command-line client

This library crate contains code useful for making a command line program similar to arti. The API should not be considered stable.

License: MIT OR Apache-2.0