Crate tor_chanmgr

Source
Expand description

§tor-chanmgr

Manage a set of channels on the Tor network.

§Overview

This crate is part of Arti, a project to implement Tor in Rust.

In Tor, a channel is a connection to a Tor relay. It can be direct via TLS, or indirect via TLS over a pluggable transport.

Since a channel can be used for more than one circuit, it’s important to reuse channels when possible. This crate implements a ChanMgr type that can be used to create channels on demand, and return existing channels when they already exist.

§Compile-time features

  • pt-client – Build with APIs to support pluggable transports.

§Experimental and unstable features

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

  • experimental – Build with all experimental features above. (Currently, there are no experimental features in this crate, but there may be some in the future.)

License: MIT OR Apache-2.0


  1. Remember, semantic versioning is what makes various cargo features work reliably. To be explicit: if you want cargo update to only make safe changes, then you cannot enable these features. 

Modules§

builder
Implement a concrete type to build channels over a transport.
factory
Traits and code to define different mechanisms for building Channels to different kinds of targets.
transport
Code to define the notion of a “Transport” and implement a default transport.

Structs§

ChanMgr
An object that remembers a set of live channels, and launches new ones on request.
ChannelConfig
Channel configuration
ChannelConfigBuilder
Builder for ChannelConfig.
ConnStatus
The status of our connection to the internet.
ConnStatusEvents
A stream of ConnStatus events describing changes in our connected-ness.

Enums§

ChanProvenance
Description of how we got a channel.
ChannelUsage
The usage that we have in mind when requesting a channel.
ConnBlockage
A problem detected while connecting to the Tor network.
Dormancy
Dormancy state, as far as the channel manager is concerned
Error
An error returned by a channel manager.

Type Aliases§

Result
A Result as returned by this crate.