Metadata-Version: 2.1
Name: multiaddr
Version: 0.0.8
Summary: Python implementation of jbenet's multiaddr
Home-page: https://github.com/multiformats/py-multiaddr
Author: Steven Buss
Author-email: steven.buss@gmail.com
License: MIT License
Download-URL: https://github.com/multiformats/py-multiaddr/tarball/0.0.8
Description: py-multiaddr
        ==========================
        
        .. image:: https://img.shields.io/pypi/v/multiaddr.svg
                :target: https://pypi.python.org/pypi/multiaddr
        
        .. image:: https://travis-ci.org/multiformats/py-multiaddr.svg?branch=master
                :target: https://travis-ci.org/multiformats/py-multiaddr
        
        .. image:: https://codecov.io/github/multiformats/py-multiaddr/coverage.svg?branch=master
                :target: https://codecov.io/github/multiformats/py-multiaddr?branch=master
        
        .. image:: https://readthedocs.org/projects/multiaddr/badge/?version=latest
                :target: https://readthedocs.org/projects/multiaddr/?badge=latest
                :alt: Documentation Status
        ..
        
            multiaddr_ implementation in Python 🐍
        
        .. _multiaddr: https://github.com/multiformats/multiaddr
        
        ..
        
        
        .. contents:: :local:
        
        Usage
        =====
        
        Simple
        ------
        
        .. code-block:: python
        
            from multiaddr import Multiaddr
        
            # construct from a string
            m1 = Multiaddr("/ip4/127.0.0.1/udp/1234")
        
            # construct from bytes
            m2 = Multiaddr(bytes_addr=m1.to_bytes())
        
            assert str(m1) == "/ip4/127.0.0.1/udp/1234"
            assert str(m1) == str(m2)
            assert m1.to_bytes() == m2.to_bytes()
            assert m1 == m2
            assert m2 == m1
            assert not (m1 != m2)
            assert not (m2 != m1)
        
        
        Protocols
        ---------
        
        .. code-block:: python
        
            from multiaddr import Multiaddr
        
            m1 = Multiaddr("/ip4/127.0.0.1/udp/1234")
        
            # get the multiaddr protocol description objects
            m1.protocols()
            # [Protocol(code=4, name='ip4', size=32), Protocol(code=17, name='udp', size=16)]
        
        
        En/decapsulate
        --------------
        
        .. code-block:: python
        
            from multiaddr import Multiaddr
        
            m1 = Multiaddr("/ip4/127.0.0.1/udp/1234")
            m1.encapsulate(Multiaddr("/sctp/5678"))
            # <Multiaddr /ip4/127.0.0.1/udp/1234/sctp/5678>
            m1.decapsulate(Multiaddr("/udp"))
            # <Multiaddr /ip4/127.0.0.1>
        
        
        Tunneling
        ---------
        
        Multiaddr allows expressing tunnels very nicely.
        
        
        .. code-block:: python
        
            printer = Multiaddr("/ip4/192.168.0.13/tcp/80")
            proxy = Multiaddr("/ip4/10.20.30.40/tcp/443")
            printerOverProxy = proxy.encapsulate(printer)
            print(printerOverProxy)
            # /ip4/10.20.30.40/tcp/443/ip4/192.168.0.13/tcp/80
        
            proxyAgain = printerOverProxy.decapsulate(printer)
            print(proxyAgain)
            # /ip4/10.20.30.40/tcp/443
        
        Maintainers
        ===========
        
        Original author: `@sbuss`_.
        
        Contribute
        ==========
        
        Contributions welcome. Please check out `the issues`_.
        
        Check out our `contributing document`_ for more information on how we work, and about contributing in general.
        Please be aware that all interactions related to multiformats are subject to the IPFS `Code of Conduct`_.
        
        License
        =======
        
        Dual-licensed:
        
        -  `MIT`_ © 2014 Steven Buss
        -  `Apache 2`_ © 2014 Steven Buss
        
        .. _the issues: https://github.com/multiformats/py-multiaddr/issues
        .. _contributing document: https://github.com/multiformats/multiformats/blob/master/contributing.md
        .. _Code of Conduct: https://github.com/ipfs/community/blob/master/code-of-conduct.md
        .. _standard-readme: https://github.com/RichardLitt/standard-readme
        .. _MIT: LICENSE-MIT
        .. _Apache 2: LICENSE-APACHE2
        .. _`@sbuss`: https://github.com/sbuss
        
        
        History
        =======
        
        0.0.7 (2019-5-8)
        ----------------
        
        * include subpackage
        * refactor util and codec
        
        0.0.5 (2019-5-7)
        ----------------
        
        * unhexilified bytes
        * new exceptions
        * miscellaneous improvements [via alexander255_ `#42`_]
        
        .. _alexander255: https://github.com/alexander255
        .. _`#42`: https://github.com/multiformats/py-multiaddr/pull/42
        
        0.0.2 (2016-5-4)
        ----------------
        
        * Fix a bug in decapsulate that threw an IndexError instead of a copy of the
          Multiaddr when the original multiaddr does not contain the multiaddr to
          decapsulate. [via fredthomsen_ `#9`_]
        * Increase test coverage [via fredthomsen_ `#9`_]
        
        .. _fredthomsen: https://github.com/fredthomsen
        .. _`#9`: https://github.com/multiformats/py-multiaddr/pull/9
        
        0.0.1 (2016-1-22)
        ------------------
        
        * First release on PyPI.
        
Keywords: multiaddr
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
Description-Content-Type: text/x-rst
