<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Tutorial — Stem 1.1.0 documentation</title> <link rel="stylesheet" href="_static/haiku.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/print.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', VERSION: '1.1.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="_static/jquery.js"></script> <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <script type="text/javascript" src="_static/theme_extras.js"></script> <link rel="shortcut icon" href="_static/favicon.png"/> <link rel="top" title="Stem 1.1.0 documentation" href="index.html" /> <link rel="up" title="Contents" href="contents.html" /> <link rel="next" title="The Little Relay that Could" href="tutorials/the_little_relay_that_could.html" /> <link rel="prev" title="Contents" href="contents.html" /> </head> <body> <div class="header"><img class="rightlogo" src="_static/logo.png" alt="Logo"/><h1 class="heading"><a href="index.html"> <span>Stem Docs</span></a></h1> <h2 class="heading"><span>Tutorial</span></h2> </div> <div class="topnav"> <p> <ul id="navbar"> <li><a href="index.html">Home</a></li> <li><a href="#">Tutorials</a> <ul> <li><a href="tutorials/the_little_relay_that_could.html">Hello World</a></li> <li><a href="tutorials/to_russia_with_love.html">Client Usage</a></li> <li><a href="tutorials/tortoise_and_the_hare.html">Event Listening</a></li> <li><a href="tutorials/mirror_mirror_on_the_wall.html">Tor Descriptors</a></li> <li><a href="tutorials/east_of_the_sun.html">Utilities</a></li> <li><a href="tutorials/double_double_toil_and_trouble.html">Examples</a></li> </ul> </li> <li><a href="api.html">API</a> <ul> <li><a href="api/control.html">stem.control</a></li> <li><a href="api/connection.html">stem.connection</a></li> <li><a href="api/socket.html">stem.socket</a></li> <li><a href="api/process.html">stem.process</a></li> <li><a href="api/response.html">stem.response</a></li> <li><a href="api/exit_policy.html">stem.exit_policy</a></li> <li><a href="api/version.html">stem.version</a></li> <li><a href="api.html#descriptors">Descriptors</a></li> <li><a href="api.html#utilities">Utilities</a></li> </ul> </li> <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/stem">Development</a> <ul> <li><a href="faq.html">FAQ</a></li> <li><a href="change_log.html">Change Log</a></li> <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/stem/bugs">Bug Tracker</a></li> <li><a href="download.html">Download</a></li> </ul> </li> </ul> </p> </div> <div class="content"> <div class="section" id="tutorial"> <h1>Tutorial<a class="headerlink" href="#tutorial" title="Permalink to this headline">ΒΆ</a></h1> <p>Getting started with any new library can be rather daunting, so let’s get our feet wet by jumping straight in with some tutorials...</p> <table border="1" class="docutils"> <colgroup> <col width="9%" /> <col width="91%" /> </colgroup> <tbody valign="top"> <tr class="row-odd"><td><a class="first last reference external image-reference" href="tutorials/the_little_relay_that_could.html"><img alt="_images/train.png" src="_images/train.png" /></a> </td> <td><a class="first reference external image-reference" href="tutorials/the_little_relay_that_could.html"><img alt="_images/the_little_relay_that_could.png" src="_images/the_little_relay_that_could.png" /></a> <p class="last">Basics for talking with Tor. This will step you through configuring Tor and writing your first script to talk with it.</p> </td> </tr> <tr class="row-even"><td><a class="first last reference external image-reference" href="tutorials/to_russia_with_love.html"><img alt="_images/soviet.png" src="_images/soviet.png" /></a> </td> <td><a class="first reference external image-reference" href="tutorials/to_russia_with_love.html"><img alt="_images/to_russia_with_love.png" src="_images/to_russia_with_love.png" /></a> <p class="last">Rather than talking to Tor, we’ll now talk <strong>through</strong> it. In this tutorial we’ll programmatically start Tor then use it to read a site through mother Russia!</p> </td> </tr> <tr class="row-odd"><td><a class="first last reference external image-reference" href="tutorials/tortoise_and_the_hare.html"><img alt="_images/tortoise.png" src="_images/tortoise.png" /></a> </td> <td><a class="first reference external image-reference" href="tutorials/tortoise_and_the_hare.html"><img alt="_images/tortoise_and_the_hare.png" src="_images/tortoise_and_the_hare.png" /></a> <p class="last">As Tor runs it generates a variety of <strong>events</strong> that controllers can subscribe to be notified of. In this tutorial we’ll do just that, writing a curses application that graphs the bandwidth usage of Tor.</p> </td> </tr> <tr class="row-even"><td><a class="first last reference external image-reference" href="tutorials/mirror_mirror_on_the_wall.html"><img alt="_images/mirror.png" src="_images/mirror.png" /></a> </td> <td><a class="first reference external image-reference" href="tutorials/mirror_mirror_on_the_wall.html"><img alt="_images/mirror_mirror_on_the_wall.png" src="_images/mirror_mirror_on_the_wall.png" /></a> <p class="last">Getting and acting upon information about relays in the Tor network. Relay information is provided through documents called <strong>descriptors</strong>. This walks you through both where to get them and a small script to tell you the fastest Tor exits.</p> </td> </tr> <tr class="row-odd"><td><a class="first last reference external image-reference" href="tutorials/east_of_the_sun.html"><img alt="_images/windrose.png" src="_images/windrose.png" /></a> </td> <td><a class="first reference external image-reference" href="tutorials/east_of_the_sun.html"><img alt="_images/east_of_the_sun.png" src="_images/east_of_the_sun.png" /></a> <p class="last">Stem provides several utility modules frequently useful for Tor controller applications. Here we introduce some of them.</p> </td> </tr> <tr class="row-even"><td><a class="first last reference external image-reference" href="tutorials/double_double_toil_and_trouble.html"><img alt="_images/cauldron.png" src="_images/cauldron.png" /></a> </td> <td><a class="first reference external image-reference" href="tutorials/double_double_toil_and_trouble.html"><img alt="_images/double_double_toil_and_trouble.png" src="_images/double_double_toil_and_trouble.png" /></a> <p class="last">Sometimes it’s easiest to learn a library by seeing how it’s used in the wild. This is a directory of scripts and applications that use stem.</p> </td> </tr> </tbody> </table> </div> </div> <div class="bottomnav"> </div> <div class="footer"> </div> </body> </html>