#tor #arti

tor-netdir

Types to represent and use a Tor network directory

22 unstable releases (9 breaking)

0.9.4 Sep 5, 2023
0.9.2 Jun 30, 2023
0.8.1 Mar 31, 2023
0.7.0 Nov 30, 2022
0.0.0 Jun 24, 2021

#2346 in Network programming

Download history 218/week @ 2023-06-09 326/week @ 2023-06-16 223/week @ 2023-06-23 553/week @ 2023-06-30 323/week @ 2023-07-07 208/week @ 2023-07-14 249/week @ 2023-07-21 280/week @ 2023-07-28 274/week @ 2023-08-04 216/week @ 2023-08-11 241/week @ 2023-08-18 245/week @ 2023-08-25 319/week @ 2023-09-01 236/week @ 2023-09-08 266/week @ 2023-09-15 113/week @ 2023-09-22

977 downloads per month
Used in 20 crates (7 directly)

MIT/Apache

2MB
24K SLoC

tor-netdir

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

License: MIT OR Apache-2.0

Dependencies

~19MB
~350K SLoC