arti/crates/tor-chanmgr
eta ac64bdea27 Make daemon tasks self-contained; introduce NetDirProvider
The various background daemon tasks that `arti-client` used to spawn are
now handled inside their respective crates instead, with functions
provided to spawn them that return `TaskHandle`s.

This required introducing a new trait, `NetDirProvider`, which steals
some functionality from the `DirProvider` trait to enable `tor-circmgr`
to depend on it (`tor-circmgr` is a dependency of `tor-dirmgr`, so it
can't depend on `DirProvider` directly).

While we're at it, we also make some of the tasks wait for events from
the `NetDirProvider` instead of sleeping, slightly increasing
efficiency.
2022-03-30 14:26:43 +01:00
..
src Make daemon tasks self-contained; introduce NetDirProvider 2022-03-30 14:26:43 +01:00
Cargo.toml Move skip_fmt into tor-basic-utils 2022-03-04 11:45:24 +00:00
README.md Move all crates into a `crates` subdirectory. 2021-08-27 09:53:09 -04:00

README.md

tor-chanmgr

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

License: MIT OR Apache-2.0