blob: 91a586530ec534e06e180f89693c6fd7c2926c8f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# tor-chanmgr
Manage a set of channels on the Tor network.
## Overview
This crate is part of
[Arti](https://gitlab.torproject.org/tpo/core/arti/), a project to
implement [Tor](https://www.torproject.org/) 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
|