Crate tor_netdir[][src]

Expand description

Represents a clients’-eye view of the Tor network.

Overview

The tor-netdir crate wraps objects from tor-netdoc, and combines them to provide a unified view of the relays on the network. It is responsible for representing a client’s knowledge of the network’s state and who is on it.

This crate is part of Arti, a project to implement Tor in Rust. Its purpose is to expose an abstract view of a Tor network and the relays in it, so that higher-level crates don’t need to know about the particular documents that describe the network and its properties.

There are two intended users for this crate. First, producers like [tor-dirmgr] create NetDir objects fill them with information from the Tor nettwork directory. Later, consumers like [tor-circmgr] use NetDirs to select relays for random paths through the Tor network.

Limitations

Only modern consensus methods and microdescriptor consensuses are supported.

Modules

fallback

List of directories that ships with Tor, for initial directory operations.

params

Implements a usable view of Tor network parameters.

Structs

NetDir

A view of the Tor directory, suitable for use in building circuits.

PartialNetDir

A partially build NetDir – it can’t be unwrapped until it has enough information to build safe paths.

Relay

A view of a relay on the Tor network, suitable for building circuits.

Enums

Error

An error returned by the network directory code

WeightRole

Possible ways to weight relays when selecting them a random.

Traits

MdReceiver

A partial or full network directory that we can download microdescriptors for.

Type Definitions

Result

A Result using the Error type from the tor-netdir crate