48 releases (breaking)

Uses new Rust 2024

new 0.37.0 Dec 2, 2025
0.36.0 Oct 30, 2025
0.35.0 Oct 6, 2025
0.32.0 Jul 8, 2025
0.0.0 Jun 24, 2021

#2083 in Network programming

Download history 3362/week @ 2025-08-12 2830/week @ 2025-08-19 3027/week @ 2025-08-26 2658/week @ 2025-09-02 2564/week @ 2025-09-09 2380/week @ 2025-09-16 2450/week @ 2025-09-23 3389/week @ 2025-09-30 3325/week @ 2025-10-07 3210/week @ 2025-10-14 3175/week @ 2025-10-21 3675/week @ 2025-10-28 3362/week @ 2025-11-04 2673/week @ 2025-11-11 3870/week @ 2025-11-18 2772/week @ 2025-11-25

13,199 downloads per month
Used in 59 crates (7 directly)

MIT/Apache and maybe LGPL-3.0-only

4.5MB
74K SLoC

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 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

Dependencies

~31–67MB
~1M SLoC