Expand description

tor-dirclient: Implements a minimal directory client for Tor.


Tor makes its directory requests as HTTP/1.0 requests tunneled over Tor circuits. For most objects, Tor uses a one-hop tunnel. Tor also uses a few strange and ad-hoc HTTP headers to select particular functionality, such as asking for diffs, compression, or multiple documents.

This crate provides an API for downloading Tor directory resources over a Tor circuit.

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


xz – enable XZ compression. This can be expensive in RAM and CPU, but it saves a lot of bandwidth. (On by default.)

zstd – enable ZSTD compression. (On by default.)

routerdesc – Add support for downloading router descriptors.


Descriptions objects for different kinds of directory requests that we can make.


A successful (or at any rate, well-formed) response to a directory request.

Information about the source of a directory response.


An error originating from the tor-dirclient crate.

An error originating from the tor-dirclient crate.


Fetch a Tor directory object from a provided stream.

Fetch the resource described by req over the Tor network.

Type Definitions

Type for internal results containing a RequestError.

Type for results returned in this crate.