Package org.torproject.descriptor

package org.torproject.descriptor
Interfaces and essential classes for obtaining and processing Tor descriptors.

This package contains all relevant interfaces and classes that an application would need to use this library. Applications are strongly discouraged from accessing types from the implementation package (org.torproject.descriptor.impl) directly, because those may change without prior notice.

Interfaces and classes in this package can be grouped into general-purpose types to obtain and process any type of descriptor and descriptors produced by different components of the Tor network:

  1. General-purpose types comprise DescriptorSourceFactory which is the main entry point into using this library. This factory is used to create the descriptor sources for obtaining remote descriptor data (DescriptorCollector) and descriptor sources for processing local descriptor data (DescriptorReader and DescriptorParser). General-purpose types also include the superinterface for all provided descriptors (Descriptor).
  2. The first group of descriptors is published by relays and servers in the Tor network. These interfaces include server descriptors (ServerDescriptor with subinterfaces RelayServerDescriptor and BridgeServerDescriptor), extra-info descriptors (ExtraInfoDescriptor with subinterfaces RelayExtraInfoDescriptor and BridgeExtraInfoDescriptor), microdescriptors which are derived from server descriptors by the directory authorities (Microdescriptor), and helper types for parts of the aforementioned descriptors (BandwidthHistory).
  3. The second group of descriptors is generated by authoritative directory servers that form an opinion about relays and bridges in the Tor network. These include descriptors specified in version 3 of the directory protocol (RelayNetworkStatusConsensus, RelayNetworkStatusVote, DirectoryKeyCertificate, and helper types for descriptor parts DirSourceEntry, NetworkStatusEntry, and DirectorySignature), descriptors from earlier directory protocol version 2 (RelayNetworkStatus) and version 1 (RelayDirectory and RouterStatusEntry), as well as descriptors published by the bridge authority and sanitized by the CollecTor service (BridgeNetworkStatus).
  4. The third group of descriptors is created by auxiliary services connected to the Tor network rather than by the Tor software. This group comprises descriptors by the bridge distribution service BridgeDB (BridgePoolAssignment), the exit list service TorDNSEL (ExitList), the performance measurement service Torperf (TorperfResult), and sanitized access logs of Tor's web servers (WebServerAccessLog).