{"library":"multiaddr","title":"Multiaddr Python Implementation","description":"Multiaddr is a Python library that provides an implementation of jbenet's multiaddr specification, designed for future-proof, composable, and efficient network addresses. It aims to solve ambiguities in traditional network addressing by making addresses self-describing, specifying both protocol and network address. The library supports various protocols like IPv4, IPv6, TCP, UDP, DNS, and more, offering both human-readable and machine-readable representations. It is currently at version 0.2.0 and receives active development and releases.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install multiaddr"],"cli":null},"imports":["from multiaddr import Multiaddr"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from multiaddr import Multiaddr\n\n# Construct a Multiaddr from a string\naddr_str = \"/ip4/127.0.0.1/tcp/8080\"\nm1 = Multiaddr(addr_str)\nprint(f\"Multiaddr from string: {m1}\")\nprint(f\"Protocols: {[p.name for p in m1.protocols()]}\")\n\n# Construct from bytes\nm2 = Multiaddr(m1.to_bytes())\nprint(f\"Multiaddr from bytes: {m2}\")\n\n# Encapsulate another Multiaddr\nwebsocket_addr = Multiaddr(\"/ws\")\nencapsulated_addr = m1.encapsulate(websocket_addr)\nprint(f\"Encapsulated Multiaddr: {encapsulated_addr}\")\n\n# Decapsulate a protocol\ndecapsulated_addr = encapsulated_addr.decapsulate(websocket_addr)\nprint(f\"Decapsulated Multiaddr: {decapsulated_addr}\")\n\nassert str(m1) == str(decapsulated_addr)","lang":"python","description":"This quickstart demonstrates how to create Multiaddr instances from strings and bytes, retrieve the list of protocols, and perform encapsulation and decapsulation operations, which are core functionalities of the library.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.0.9","pypi_latest":"0.2.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":5.1,"avg_import_s":0.03,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1.5,"disk_size":"43.0M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":5.5,"import_time_s":0.02,"mem_mb":1.5,"disk_size":"43M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.05,"mem_mb":1.7,"disk_size":"47.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":4.8,"import_time_s":0.04,"mem_mb":1.7,"disk_size":"48M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.04,"mem_mb":1.5,"disk_size":"37.1M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":6.4,"import_time_s":0.04,"mem_mb":1.5,"disk_size":"37M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.04,"mem_mb":1.8,"disk_size":"36.9M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":5.9,"import_time_s":0.04,"mem_mb":1.6,"disk_size":"37M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":0.8,"disk_size":"28.9M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"multiaddr","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.8,"import_time_s":0.01,"mem_mb":0.8,"disk_size":"29M"}]}}