Metadata-Version: 1.1
Name: txi2p
Version: 0.3.2
Summary: I2P bindings for Twisted
Home-page: https://github.com/str4d/txi2p
Author: str4d
Author-email: str4d@i2pmail.org
License: ISC
Description: =====
        txi2p
        =====
        
        .. image:: https://api.travis-ci.org/str4d/txi2p.svg?branch=master
            :target: https://www.travis-ci.org/str4d/txi2p
            :alt: travis
        
        .. image:: https://coveralls.io/repos/github/str4d/txi2p/badge.svg?branch=master
            :target: https://coveralls.io/github/str4d/txi2p?branch=master
            :alt: coveralls
        
        |txi2p| is a set of I2P bindings for `Twisted <https://twistedmatrix.com/>`_
        10.1 or greater. It currently requires Python 2.
        
        |txi2p| supports both the SAM and BOB APIs for I2P. The default API is SAM.
        
        Installation
        ============
        
        You can install |txi2p| from PyPI::
        
            $ pip2 install txi2p
        
        or by downloading the source and running::
        
            $ pip2 install .
        
        inside the source directory.
        
        Quickstart
        ==========
        
        If you are not familiar with using endpoints or endpoint strings, read the
        `Twisted endpoints`_ documentation.
        
        .. _Twisted endpoints: https://twistedmatrix.com/documents/current/core/howto/endpoints.html
        
        Using endpoint classes
        ----------------------
        
        To connect to an I2P site::
        
            from twisted.internet import reactor
            from twisted.internet.endpoints import clientFromString
            from txi2p.sam import SAMI2PStreamClientEndpoint
        
            samEndpoint = clientFromString(reactor, 'tcp:127.0.0.1:7656')
            endpoint = SAMI2PStreamClientEndpoint.new(samEndpoint, 'stats.i2p')
            d = endpoint.connect(factory)
        
        To have a server listen on an I2P Destination::
        
            from twisted.internet import reactor
            from twisted.internet.endpoints import clientFromString
            from txi2p.sam import SAMI2PStreamServerEndpoint
        
            samEndpoint = clientFromString(reactor, 'tcp:127.0.0.1:7656')
            endpoint = SAMI2PStreamServerEndpoint.new(samEndpoint, '/path/to/keyfile')
            d = endpoint.listen(factory)
        
        Using endpoint strings
        ----------------------
        
        Requires `Twisted`_ 14.0 or greater.
        
        To connect to an I2P site::
        
            from twisted.internet import reactor
            from twisted.internet.endpoints import clientFromString
        
            endpoint = clientFromString(reactor, 'i2p:stats.i2p')
            d = endpoint.connect(factory)
        
        To have a server listen on an I2P Destination::
        
            from twisted.internet import reactor
            from twisted.internet.endpoints import serverFromString
        
            endpoint = serverFromString(reactor, 'i2p:/path/to/keyfile')
            d = endpoint.listen(factory)
        
        To connect using a specific API::
        
            from twisted.internet import reactor
            from twisted.internet.endpoints import clientFromString
        
            endpoint = clientFromString(reactor, 'i2p:stats.i2p:api=BOB')
            d = endpoint.connect(factory)
        
        To connect using a non-standard API host or port::
        
            from twisted.internet import reactor
            from twisted.internet.endpoints import clientFromString
        
            endpoint = clientFromString(reactor, 'i2p:stats.i2p:api=SAM:apiEndpoint=tcp\:127.0.0.1\:31337')
            d = endpoint.connect(factory)
        
        
        Endpoint strings
        ================
        
        The Twisted plugin for |clientFromString| and |serverFromString| will
        only work for `Twisted`_ 14.0 or greater.
        
        Both client and server strings support the following keyword arguments:
        
        * ``api=<apiName>`` - Either ``SAM`` or ``BOB``.
        * ``apiEndpoint=<endpointString>`` - An escaped client endpoint string pointing
          to the API, e.g. ``tcp\:127.0.0.1\:2827``.
        
        Clients
        -------
        
        Client string format::
        
            i2p:<host>[:port][:key=value]*
        
        Supported arguments:
        
        **SAM**
        
        * ``nickname``
        * ``autoClose``
        * ``keyfile``
        * ``localPort``
        * ``options``
        * ``sigType``
        
        **BOB**
        
        * ``tunnelNick``
        * ``inhost``
        * ``inport``
        * ``options``
        
        Servers
        -------
        
        Server string format::
        
            i2p:<keyfile>[:port][:key=value]*
        
        Supported arguments:
        
        **SAM**
        
        * ``nickname``
        * ``autoClose``
        * ``options``
        * ``sigType``
        
        **BOB**
        
        * ``tunnelNick``
        * ``outhost``
        * ``outport``
        * ``options``
        
        Important changes
        =================
        
        0.3.2
        -----
        
        * The default signature type for new Destinations is Ed25519.
        
          * If the SAM server does not support that (Java I2P 0.9.16 and earlier), txi2p
            will fall back on ECDSA_SHA256_P256, followed by the old default DSA_SHA1.
        
        0.3
        ---
        
        * Ports are now supported on the SAM API.
        
          * Previous ``port`` options are no longer ignored.
          * New ``localPort`` option for setting the client's local port.
        
        * The ``SAMI2PStreamServerEndpoint`` API has changed to no longer require a
          reactor.
        
        Documentation
        =============
        
        API documentation is available at https://txi2p.readthedocs.org
        
        .. |txi2p| replace:: ``txi2p``
        .. |clientFromString| replace:: ``clientFromString()``
        .. |serverFromString| replace:: ``serverFromString()``
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Twisted
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 2 :: Only
Classifier: Topic :: Internet
