Skip to main content

OpenDHT

OpenDHT is a lightweight Distributed Hash Table implementation providing an easy to use distributed in-memory data store.

Key Features

  • Lightweight and scalable, designed for large networks and small devices
  • High resilience to network disruption
  • Public key cryptography layer providing optional data signature and encryption
  • IPv4 and IPv6 support
  • Python 3 bindings
  • REST API with optional HTTP client+server with push notification support

Every node in the network can read and write values to the store. Values are distributed over the network with redundancy.

Installation

Install on Linux, macOS and Windows with:

pip install opendht

Quick Example

Using the simple, blocking API:

import opendht as dht

node = dht.DhtRunner()
node.run()

# Join the DHT network through any running node,
# here using a known bootstrap node.
node.bootstrap("bootstrap.jami.net", "4222")

# blocking call (provide callback arguments to make the call non-blocking)
node.put(dht.InfoHash.get("unique_key"), dht.Value(b'some binary data'))

results = node.get(dht.InfoHash.get("unique_key"))
for value in results:
    print(value)

Or using asyncio:

import asyncio
import opendht.aio as dht

async def dht_async_demo(key_str: str):
    # Start a new node using an async context manager.
    # It is also possible to call run()/await shutdown() manually.
    async with dht.DhtRunner(
        bootstrap=(("bootstrap.jami.net", "4222"),)
    ) as node:
        # compute key hash
        key = dht.InfoHash.get(key_str)

        # put data, waiting for completion
        await node.put(key, dht.Value(b'tata data'))

        # get all values at key
        results = await node.getAll(key)
        for value in results:
            print(value)
        
        # same operation, but stream values as they come from the network
        with node.get(key) as results:
            async for value in results:
                print(value)

        # listen for change of values at key
        with node.listen(key) as values:
            async for value, expired in values:
                print(value)
                if value.data == b'tata data':
                    break

asyncio.run(dht_async_demo("unique_key"))

Documentation

For more information, examples and documentation, or to repport issues, visit: https://opendht.net

License

Copyright (c) 2014-2026 Savoir-faire Linux Inc.

OpenDHT is released under the MIT License. See LICENSE for details.

Release files for opendht 4.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for opendht 4.4.0
File
opendht-4.4.0-cp314-cp314-manylinux_2_34_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ x86-64 Details
opendht-4.4.0-cp314-cp314-manylinux_2_34_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ ARM64 Details
opendht-4.4.0-cp314-cp314-macosx_15_0_arm64.whl CPython 3.14 CPython 3.14 macOS 15.0+ ARM64 Details
opendht-4.4.0-cp313-cp313-manylinux_2_34_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ x86-64 Details
opendht-4.4.0-cp313-cp313-manylinux_2_34_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ ARM64 Details
opendht-4.4.0-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details
opendht-4.4.0-cp312-cp312-manylinux_2_34_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64 Details
opendht-4.4.0-cp312-cp312-manylinux_2_34_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ ARM64 Details
opendht-4.4.0-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details
opendht-4.4.0-cp311-cp311-manylinux_2_34_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ x86-64 Details
opendht-4.4.0-cp311-cp311-manylinux_2_34_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ ARM64 Details
opendht-4.4.0-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details
opendht-4.4.0-cp310-cp310-manylinux_2_34_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ x86-64 Details
opendht-4.4.0-cp310-cp310-manylinux_2_34_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ ARM64 Details
opendht-4.4.0-cp39-cp39-manylinux_2_34_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.34+ x86-64 Details

Total release size: 78.9 MB

Release files / opendht-4.4.0-cp314-cp314-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.0-cp314-cp314-manylinux_2_34_x86_64.whl
Size 6.0 MB
Tags CPython 3.14 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
dd90fdf40ee1c8af35162f37918f35dfd783c7e20032eb48d7e28b202e270b29
BLAKE2b-256 checksum
How to use checksums
47a8a2f82370936ccba977104a2f14dab8d73615fcf70c221c81c0c5a99506bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp314-cp314-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.0-cp314-cp314-manylinux_2_34_aarch64.whl
Size 5.6 MB
Tags CPython 3.14 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
0c25daaaf982788ea04e0f07acafb8c31704a911acd734672007b44b56c075d9
BLAKE2b-256 checksum
How to use checksums
617294fe9859d9358741cf667f6250c421daca37a64a43fe8210765adc208330
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp314-cp314-macosx_15_0_arm64.whl

Download URL opendht-4.4.0-cp314-cp314-macosx_15_0_arm64.whl
Size 3.7 MB
Tags CPython 3.14 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
955654105907a0fc7c88f4585b818859244be57884af278d6738feaf47fb8eca
BLAKE2b-256 checksum
How to use checksums
f18de83b3cc94dfcde4588ad8adfd286f7b5cf7da275d98b83a737ace1796ca8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp313-cp313-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.0-cp313-cp313-manylinux_2_34_x86_64.whl
Size 6.0 MB
Tags CPython 3.13 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
5857921f33f604166c04177f5632566a36b1a806aff3e30ea0ee7b5797dcd813
BLAKE2b-256 checksum
How to use checksums
46d2c6d3978c64424379c4fcaa014bca743bb53d6f17f8ecffac5170d7e99696
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp313-cp313-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.0-cp313-cp313-manylinux_2_34_aarch64.whl
Size 5.6 MB
Tags CPython 3.13 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
f1bdd8c402801068688aa2ee6ea41e50649e7585c67f7505a541a5f3b9259209
BLAKE2b-256 checksum
How to use checksums
ee80c666d0cab3d422f6182bbd10dd71fa26d5f65947f142b05ee2dbaf62b6c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp313-cp313-macosx_15_0_arm64.whl

Download URL opendht-4.4.0-cp313-cp313-macosx_15_0_arm64.whl
Size 3.7 MB
Tags CPython 3.13 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
015db7311375aaf8736c69f68ce0afb433fc074f9f0a3e3b12b81e26554a0520
BLAKE2b-256 checksum
How to use checksums
2eab7290e4a48ce307480f9bf8d4e0fa05d92fc39153199f505ac2dc2c381f20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp312-cp312-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.0-cp312-cp312-manylinux_2_34_x86_64.whl
Size 6.0 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
6a4ed5736cc9e532f11729fbaeba881c6858031084291020f5ac93d24232038b
BLAKE2b-256 checksum
How to use checksums
8d29d342cc86c3db3eedf23cf5b88c1b4fef9eaff225742685f2dfd7def606b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp312-cp312-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.0-cp312-cp312-manylinux_2_34_aarch64.whl
Size 5.6 MB
Tags CPython 3.12 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
242cf7918e0467e06a022dc5d37bf84ff42ae748fe55ea71de069ae5bc7f035a
BLAKE2b-256 checksum
How to use checksums
57a497daaa5c2840aaf922cf8967330f65d9b4eef00d013b27b1e0896d3dd3c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp312-cp312-macosx_15_0_arm64.whl

Download URL opendht-4.4.0-cp312-cp312-macosx_15_0_arm64.whl
Size 3.7 MB
Tags CPython 3.12 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
5f0b731c2ccbbf3ef1f1c3efff3b1804db1a1a78b2e7730db2405733bd05e93a
BLAKE2b-256 checksum
How to use checksums
c1fcb96e7c9a01475f424df5a70a07db432f747d267f3e7ef383fc0836fca2d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp311-cp311-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.0-cp311-cp311-manylinux_2_34_x86_64.whl
Size 6.1 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
e38c047e935f087e7f11b26f549bbf42f8fc7d0e43b30adba4fe25e49946bf76
BLAKE2b-256 checksum
How to use checksums
8be6615e28d4d0414ef0a5bb515a4cc085a98c5ee8c92a7c02744f9a6395ecd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp311-cp311-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.0-cp311-cp311-manylinux_2_34_aarch64.whl
Size 5.7 MB
Tags CPython 3.11 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
5b790601a74b833e41094076a1c50f43e190103f5838846275740aabd9469a77
BLAKE2b-256 checksum
How to use checksums
6377e7523bbb25dd8cc24ba1c38dd6e0c6f5daaf06630b54b62a329134f3e042
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp311-cp311-macosx_15_0_arm64.whl

Download URL opendht-4.4.0-cp311-cp311-macosx_15_0_arm64.whl
Size 3.7 MB
Tags CPython 3.11 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
b430bdda50be339d8bc31e15a5eaa6a796db9574d645aea6304720a41c57b779
BLAKE2b-256 checksum
How to use checksums
5bd020587b2611996fdd5f1380b6b173fe93043bc3ab50325a67db2267f7ca19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp310-cp310-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.0-cp310-cp310-manylinux_2_34_x86_64.whl
Size 6.0 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
e4dd37cea392c7bddbef7ea6787182c06dddeba0593fe103c714ec7563dd9738
BLAKE2b-256 checksum
How to use checksums
e2ef8a0b031fbe3dc11157da22b898437358a7d8657a5d268936c294f0a21c50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp310-cp310-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.0-cp310-cp310-manylinux_2_34_aarch64.whl
Size 5.6 MB
Tags CPython 3.10 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
53ab7232787cdb6c8ce1b1a10ebf46c4ae9eaf383c74b0924055c7d62a2a7376
BLAKE2b-256 checksum
How to use checksums
fedab791c404e3a1af1c34c77b0e0c76d0288e2028a28068e056c62cfed79ba4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / opendht-4.4.0-cp39-cp39-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.0-cp39-cp39-manylinux_2_34_x86_64.whl
Size 6.0 MB
Tags CPython 3.9 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
25e236a3eff4702a175a9082893fb26f3f976be1e0185ae58d1d052877d0f246
BLAKE2b-256 checksum
How to use checksums
ca3430a6e363d8c34a9076ffca89bc8b8ed390c5473ed7ec7f03aaf6d9e2a301
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

4.4.0 This release

15 release files

4.0.0

19 release files

3.7.7

15 release files

3.7.6

15 release files

3.7.2

15 release files

3.7.1

15 release files

3.7.0

15 release files

3.6.2

15 release files

3.6.0

15 release files

3.5.5

15 release files

3.5.2

12 release files

3.5.1

9 release files

1.8.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page