Stem FAQ



What is Stem?

Stem is a python controller library for Tor. Like its predecessor, TorCtl, it uses Torís control protocol to help developers program against the Tor process, enabling them to build things similar to Vidalia & Arm.

Stem is currently developed & maintained by atagar for the Tor software.


How is Stem different from TorCtl?

Stem is a controller library with a similar scope to TorCtl, but with better testing, documentation, and API. The project is not yet feature complete.


Licensing?

Stem is under the LGPLv3 which is a fine license, but poses a bit of a problem for sharing code with our other projects (which are mostly BSD). To share code without needing to hunt down prior contributors we need an individual to have the copyright for the whole stem codebase. This is Damian at present, but I'll probably give it to Tor if I get nailed by a bus.


How can I get support?

There is no official support for Stem. Your best bet is to try the following:

  1. Read through this FAQ.
  2. Read through the Documentation.
  3. Join our irc channel and state the issue and wait for help.
  4. Contact atagar atagar1@gmail.com

How do I install Stem?

If you have pip installed then getting stem can be as simple as...

% pip install stem
Although, if you want to confgure & install latest Stem, you can download Stem Source code from it's git repository.
% git clone https://git.torproject.org/stem.git
Then, run setup.py -
% python ./setup.py
Also, this page can be of help.


What do the version numbers mean?

Stem uses semantic versioning, which means that versions consist of three numbers (such as Ď1.2.4Ď). These are used to convey the kind of backward compatibility a release has...


Which Python versions are supported?

Stem supports both Python 27 & Python 3.x by using 2to3. To install the Python 3.x version of Stem,

% python3 setup.py --python3
For developers, to run tests for Python 3 version,
% python3 run_tests.py --integ --python3


Does Stem have any dependancies?


Where can I get detailed documentation for all Stem modules?

The API page would be a good place to begin with.
A variety of Tutorials are also available.