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
Remember, semantic versioning is what makes various
cargo
features work reliably. To be explicit: if you wantcargo update
to only make safe changes, then you cannot enable these features. ↩
Modules§
- Implement a concrete type to build channels over a transport.
- Traits and code to define different mechanisms for building Channels to different kinds of targets.
- Code to define the notion of a “Transport” and implement a default transport.
Structs§
- An object that remembers a set of live channels, and launches new ones on request.
- Channel configuration
- Builder for
ChannelConfig
. - The status of our connection to the internet.
- A stream of
ConnStatus
events describing changes in our connected-ness.
Enums§
- Description of how we got a channel.
- The usage that we have in mind when requesting a channel.
- A problem detected while connecting to the Tor network.
- Dormancy state, as far as the channel manager is concerned
- An error returned by a channel manager.
Type Aliases§
- A Result as returned by this crate.