Contents
********

* Tutorial

* The Little Relay that Could

* To Russia With Love

  * Using PycURL

  * Using SocksiPy

  * Reading Twitter

  * Custom Path Selection

* Tortoise and the Hare

  * Advanced Listeners

* Mirror Mirror on the Wall

  * What is a descriptor?

  * Where do descriptors come from?

  * Where can I get the current descriptors?

  * Where can I get past descriptors?

  * Can I get descriptors from the Tor process?

  * Can I create descriptors?

  * Validating the descriptor’s content

  * Saving and loading descriptors

  * Putting it together…

  * Are there any other parsing libraries?

  * Stem Example

  * Metrics-lib Example

  * Zoossh Example

* Over the River and Through the Wood

  * Running a hidden service

  * Hidden service authentication

  * Ephemeral hidden services

  * Hidden service descriptors

* East of the Sun & West of the Moon

  * Terminal Styling

  * Multiprocessing

  * Connection Resolution

* Down the Rabbit Hole

  * Getting started

  * What can I do with it?

  * Event handling

  * Running individual commands

* Double Double Toil and Trouble

* Applications

* Scripts

  * Client Usage

  * Relays

  * Descriptors

* Bandwidth Heuristics

* Checking Descriptor Digests

* Comparing Directory Authority Flags

* Download Tor Descriptors

* Determine The Exit You’re Using

* List Circuits

* Connection Summary

* List Outdated Relays

* Saving and Loading a Tor Consensus

* Votes by Bandwidth Authorities

* Change Log

  * Versioning

  * Unreleased

  * Version 1.8 (December 29th, 2019)

  * Version 1.7 (October 7th, 2018)

  * Version 1.6 (November 5th, 2017)

  * Version 1.5 (November 20th, 2016)

  * Version 1.4 (May 13th, 2015)

  * Version 1.3 (December 22nd, 2014)

  * Version 1.2 (June 1st, 2014)

  * Version 1.1 (October 14th, 2013)

  * Version 1.0 (March 26th, 2013)

* Download

* Frequently Asked Questions

* General Information

  * What is Stem?

  * Does Stem have any dependencies?

  * What Python versions is Stem compatible with?

  * Can I interact with Tor’s controller interface directly?

  * Are there any other controller libraries?

  * What license is Stem under?

  * Where can I get help?

* Usage

  * How do I connect to Tor?

  * How do I request a new identity from Tor?

  * How do I reload my torrc?

  * How do I read *.tar.xz descriptor archives?

  * What is that ‘with’ keyword I keep seeing in the tutorials?

* Development

  * How do I get started?

  * How do I run the tests?

  * How can I test compatibility with multiple python versions?

  * How do I build the site?

  * What is the copyright for patches?

* API

  * Controller

  * Descriptors

  * Utilities

* Controller

  * Exceptions and Attribute Enums

* Controller Connection

* Directory

* Control Socket

* Tor Process

* Controller Responses

  * Responses

  * Events

* Exit Policy

* Manual

* Version

* Bandwidth File

* Certificate

* CollecTor

* Descriptor

* Server Descriptor

* Extrainfo Descriptor

* MicroDescriptor

* Network Status Documents

* Router Status Entries

* Hidden Service Descriptor

* TorDNSEL Exit Lists

* Descriptor Exporter

* Descriptor Reader

* Descriptor Remote

* Util

* Configuration File Handling

* Connection Utilities

* Enumerations

* Logging

* Proc Utilities

* String Utilities

* System Utilities

* Terminal Utilities

* Test Utilities

* Tor Utilities
