#tor #arti #networking #async

tor-chanmgr

Manage a set of connections to the Tor network

36 releases (23 breaking)

new 0.25.0 Dec 2, 2024
0.24.0 Oct 31, 2024
0.23.0 Sep 30, 2024
0.20.0 Jun 27, 2024
0.0.0 Jun 24, 2021

#1812 in Network programming

Download history 1134/week @ 2024-08-16 1475/week @ 2024-08-23 1535/week @ 2024-08-30 1699/week @ 2024-09-06 1110/week @ 2024-09-13 1232/week @ 2024-09-20 1749/week @ 2024-09-27 1058/week @ 2024-10-04 898/week @ 2024-10-11 1116/week @ 2024-10-18 1040/week @ 2024-10-25 2229/week @ 2024-11-01 1098/week @ 2024-11-08 2413/week @ 2024-11-15 1500/week @ 2024-11-22 2377/week @ 2024-11-29

7,593 downloads per month
Used in 37 crates (7 directly)

MIT/Apache and maybe LGPL-3.0-only

3MB
49K 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

~22–34MB
~520K SLoC