Metadata-Version: 2.0
Name: txtorcon
Version: 0.19.3
Summary: Twisted-based Tor controller client, with state-tracking and
configuration abstractions.
https://txtorcon.readthedocs.org
https://github.com/meejah/txtorcon
Requires-Dist: Twisted[tls] (>=15.5.0)
Requires-Dist: automat
Requires-Dist: incremental
Requires-Dist: ipaddress (>=1.0.16)
Requires-Dist: zope.interface (>=3.6.1)
Provides-Extra: dev
Requires-Dist: Sphinx; extra == 'dev'
Requires-Dist: codecov; extra == 'dev'
Requires-Dist: coverage; extra == 'dev'
Requires-Dist: coveralls; extra == 'dev'
Requires-Dist: cuvner; extra == 'dev'
Requires-Dist: geoip; extra == 'dev'
Requires-Dist: ipaddress (>=1.0.16); extra == 'dev'
Requires-Dist: mock; extra == 'dev'
Requires-Dist: pep8; extra == 'dev'
Requires-Dist: pyflakes; extra == 'dev'
Requires-Dist: repoze.sphinx.autointerface (>=0.4); extra == 'dev'
Requires-Dist: setuptools (>=0.8.0); extra == 'dev'
Requires-Dist: tox; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Requires-Dist: wheel; extra == 'dev'
Home-page: https://github.com/meejah/txtorcon
Author: meejah
Author-email: meejah@meejah.ca
License: MIT
Description:
.. _NOTE: see docs/index.rst for the starting-point
.. _ALSO: https://txtorcon.readthedocs.org for rendered docs
.. image:: https://travis-ci.org/meejah/txtorcon.png?branch=master
:target: https://www.travis-ci.org/meejah/txtorcon
:alt: travis
.. image:: https://coveralls.io/repos/meejah/txtorcon/badge.png
:target: https://coveralls.io/r/meejah/txtorcon
:alt: coveralls
.. image:: http://codecov.io/github/meejah/txtorcon/coverage.svg?branch=master
:target: http://codecov.io/github/meejah/txtorcon?branch=master
:alt: codecov
.. image:: https://readthedocs.org/projects/txtorcon/badge/?version=stable
:target: https://txtorcon.readthedocs.io/en/stable
:alt: ReadTheDocs
.. image:: https://readthedocs.org/projects/txtorcon/badge/?version=latest
:target: https://txtorcon.readthedocs.io/en/latest
:alt: ReadTheDocs
.. image:: http://api.flattr.com/button/flattr-badge-large.png
:target: http://flattr.com/thing/1689502/meejahtxtorcon-on-GitHub
:alt: flattr
.. image:: https://landscape.io/github/meejah/txtorcon/master/landscape.svg?style=flat
:target: https://landscape.io/github/meejah/txtorcon/master
:alt: Code Health
txtorcon
========
- **docs**: https://txtorcon.readthedocs.org or http://timaq4ygg2iegci7.onion
- **code**: https://github.com/meejah/txtorcon
- ``torsocks git clone git://timaq4ygg2iegci7.onion/txtorcon.git``
- MIT-licensed;
- Python 2.7, PyPy 5.0.0+, Python 3.4+;
- depends on
`Twisted <https://twistedmatrix.com>`_,
`Automat <https://github.com/glyph/automat>`_,
(and the `ipaddress <https://pypi.python.org/pypi/ipaddress>`_ backport for non Python 3)
.. caution::
Several large, new features have landed on master. If you're working
directly from master, note that some of these APIs may change before
the next release.
Ten Thousand Feet
-----------------
txtorcon is an implementation of the `control-spec
<https://gitweb.torproject.org/torspec.git/blob/HEAD:/control-spec.txt>`_
for `Tor <https://www.torproject.org/>`_ using the `Twisted
<https://twistedmatrix.com/trac/>`_ networking library for `Python
<http://python.org/>`_.
This is useful for writing utilities to control or make use of Tor in
event-based Python programs. If your Twisted program supports
endpoints (like ``twistd`` does) your server or client can make use of
Tor immediately, with no code changes. Start your own Tor or connect
to one and get live stream, circuit, relay updates; read and change
config; monitor events; build circuits; create onion services;
etcetera (`ReadTheDocs <https://txtorcon.readthedocs.org>`_).
Some Possibly Motivational Example Code
---------------------------------------
`download <examples/readme.py>`_
(also `python3 style <examples/readme3.py>`_)
.. code:: python
from twisted.internet.task import react
from twisted.internet.defer import inlineCallbacks
from twisted.internet.endpoints import UNIXClientEndpoint
import treq
import txtorcon
@react
@inlineCallbacks
def main(reactor):
tor = yield txtorcon.connect(
reactor,
UNIXClientEndpoint(reactor, "/var/run/tor/control")
)
print("Connected to Tor version {}".format(tor.version))
url = 'https://www.torproject.org:443'
print("Downloading {}".format(url))
resp = yield treq.get(url, agent=tor.web_agent())
print(" {} bytes".format(resp.length))
data = yield resp.text()
print("Got {} bytes:\n{}\n[...]{}".format(
len(data),
data[:120],
data[-120:],
))
print("Creating a circuit")
state = yield tor.create_state()
circ = yield state.build_circuit()
yield circ.when_built()
print(" path: {}".format(" -> ".join([r.ip for r in circ.path])))
print("Downloading meejah's public key via above circuit...")
resp = yield treq.get(
'https://meejah.ca/meejah.asc',
agent=circ.web_agent(reactor, tor.config.socks_endpoint(reactor)),
)
data = yield resp.text()
print(data)
Try It Now On Debian/Ubuntu
---------------------------
For example, serve some files via an onion service (*aka* hidden
service):
.. code-block:: shell-session
$ sudo apt-get install python-txtorcon
$ twistd -n web --port "onion:80" --path ~/public_html
Read More
---------
All the documentation starts `in docs/index.rst
<docs/index.rst>`_. Also hosted at `txtorcon.rtfd.org
<https://txtorcon.readthedocs.io/en/latest/>`_.
You'll want to start with `the introductions <docs/introduction.rst>`_ (`hosted at RTD
<https://txtorcon.readthedocs.org/en/latest/introduction.html>`_).
Keywords: python,twisted,tor,tor controller
Platform: UNKNOWN
Classifier: Framework :: Twisted
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet :: Proxy Servers
Classifier: Topic :: Internet
Classifier: Topic :: Security