29 releases (16 breaking)

0.18.0 Apr 30, 2024
0.14.1 Mar 4, 2024
0.12.0 Dec 4, 2023
0.11.0 Oct 31, 2023
0.0.0 Jun 24, 2021

#1594 in Network programming

Download history 140/week @ 2024-01-22 125/week @ 2024-01-29 289/week @ 2024-02-05 169/week @ 2024-02-12 125/week @ 2024-02-19 539/week @ 2024-02-26 2019/week @ 2024-03-04 626/week @ 2024-03-11 978/week @ 2024-03-18 1469/week @ 2024-03-25 967/week @ 2024-04-01 1330/week @ 2024-04-08 254/week @ 2024-04-15 233/week @ 2024-04-22 501/week @ 2024-04-29 299/week @ 2024-05-06

1,313 downloads per month
Used in 20 crates (5 directly)

MIT/Apache

2.5MB
39K 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

~23–36MB
~561K SLoC