14 releases (8 breaking)

Uses new Rust 2021

0.8.0 Nov 30, 2022
0.6.0 Sep 1, 2022
0.4.0 Jun 24, 2022
0.1.0 Mar 1, 2022
0.0.0 Jun 24, 2021

#280 in Network programming

Download history 444/week @ 2022-08-18 1436/week @ 2022-08-25 1777/week @ 2022-09-01 984/week @ 2022-09-08 990/week @ 2022-09-15 1244/week @ 2022-09-22 1059/week @ 2022-09-29 883/week @ 2022-10-06 638/week @ 2022-10-13 894/week @ 2022-10-20 374/week @ 2022-10-27 399/week @ 2022-11-03 213/week @ 2022-11-10 227/week @ 2022-11-17 218/week @ 2022-11-24 386/week @ 2022-12-01

1,102 downloads per month
Used in 11 crates (4 directly)


30K SLoC


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.

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 versioning[^1] 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.)

[^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.

License: MIT OR Apache-2.0


~449K SLoC