Crate tor_circmgr
source · [−]Expand description
tor-circmgr
: circuits through the Tor network on demand.
Overview
This crate is part of Arti, a project to implement Tor in Rust.
In Tor, a circuit is an encrypted multi-hop tunnel over multiple relays. This crate’s purpose, long-term, is to manage a set of circuits for a client. It should construct circuits in response to a client’s needs, and preemptively construct circuits so as to anticipate those needs. If a client request can be satisfied with an existing circuit, it should return that circuit instead of constructing a new one.
Limitations
But for now, this tor-circmgr
code is extremely preliminary; its
data structures are all pretty bad, and it’s likely that the API
is wrong too.
Re-exports
pub use isolation::IsolationToken;
Modules
Facilities to build circuits directly, instead of via a circuit manager.
Types related to stream isolation
Code to construct paths through the Tor network
Structs
A Circuit Manager (CircMgr) manages a set of circuits, returning them when they’re suitable, and launching them if they don’t already exist.
Configuration for circuit timeouts, expiration, and so on.
Builder for CircuitTiming
.
A unique cryptographic identifier for a selected guard or fallback directory.
Rules for building paths over the network.
Builder for PathConfig
.
Configuration for preemptive circuits.
A port that we want to connect to as a client.
Set of requested target ports, mostly for use in error reporting
Enums
Represents what we know about the Tor network.
An error returned while looking up or building a circuit
An activity that can succeed or fail, and whose success or failure can be attributed to a guard.
Traits
Configuration for a circuit manager
Type Definitions
A Result type as returned from this crate.