Skip to main content

Multiaddr

https://img.shields.io/pypi/v/multiaddr.svg https://travis-ci.org/sbuss/py-multiaddr.svg?branch=master https://codecov.io/github/sbuss/py-multiaddr/coverage.svg?branch=master Documentation Status

Python implementation of jbenet’s multiaddr

Usage

Simple

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

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

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.

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

History

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]

0.0.1 (2016-1-22)

  • First release on PyPI.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py-multiaddr-0.0.3.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_multiaddr-0.0.3-py2.py3-none-any.whl (10.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file py-multiaddr-0.0.3.tar.gz.

File metadata

  • Download URL: py-multiaddr-0.0.3.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for py-multiaddr-0.0.3.tar.gz
Algorithm Hash digest
SHA256 89ed9f6556a9e7b114f76f801a8742ece35dc0ebbbdadb3b477e1495239c03ed
MD5 88fa70b6c333cfa8aa9b223e59bb294c
BLAKE2b-256 f01f9dc7bb9fc5ffb0bb379291c8fd75249e69c67d549aab96ae065e378cd416

See more details on using hashes here.

File details

Details for the file py_multiaddr-0.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: py_multiaddr-0.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for py_multiaddr-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 dd1a9b957876e60e10b820ecc61f29ef298801af22098514e2cb321431c9bc10
MD5 5953e185292b6da9aee8d3fe23c15eef
BLAKE2b-256 1f285aa4acb5a4258fb1b1c2d1de6015848a04ed44819246ea70f0260382017a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page