Expand description

tor-chanmgr: Manage a set of channels on the Tor network.


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. (For now, only direct channels are supported.)

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.


A Type that remembers a set of live channels, and launches new ones on request.

The status of our connection to the internet.

A stream of ConnStatus events describing changes in our connected-ness.


Description of how we got a channel.

A problem detected while connecting to the Tor network.

An error returned by a channel manager.

Type Definitions

A Result as returned by this crate.