43 releases (breaking)

new 0.30.0 May 1, 2025
0.28.0 Mar 3, 2025
0.25.0 Dec 2, 2024
0.24.0 Oct 31, 2024
0.0.0 Jun 24, 2021

#1538 in Network programming

Download history 1547/week @ 2025-01-10 1482/week @ 2025-01-17 1368/week @ 2025-01-24 1078/week @ 2025-01-31 3173/week @ 2025-02-07 1331/week @ 2025-02-14 1388/week @ 2025-02-21 1434/week @ 2025-02-28 1273/week @ 2025-03-07 1452/week @ 2025-03-14 1007/week @ 2025-03-21 1267/week @ 2025-03-28 973/week @ 2025-04-04 2124/week @ 2025-04-11 1901/week @ 2025-04-18 1942/week @ 2025-04-25

7,144 downloads per month
Used in 45 crates (8 directly)

MIT/Apache and maybe LGPL-3.0-only

5.5MB
82K SLoC

tor-circmgr

circuits through the Tor network on demand.

Overview

This crate is part of Arti, a project to implement Tor in Rust.

In Tor, a circuit is an encrypted multi-hop tunnel over multiple relays. This crate's purpose, long-term, is to manage a set of circuits for a client. It should construct circuits in response to a client's needs, and preemptively construct circuits so as to anticipate those needs. If a client request can be satisfied with an existing circuit, it should return that circuit instead of constructing a new one.

Compile-time features

  • specific-relay: Support for connecting to a relay via specifically provided connection instructions, rather than using information from a Tor network directory.

  • full: Enable all features above.

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-api: Add additional non-stable APIs to our public interfaces.

  • experimental: Enable all the above experimental features.

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

~24–36MB
~571K SLoC