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.

Metadata

Release files for opendht 4.4.1

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.1
File
opendht-4.4.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
opendht-4.4.1-cp314-cp314-manylinux_2_34_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ x86-64 Details
opendht-4.4.1-cp314-cp314-manylinux_2_34_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ ARM64 Details
opendht-4.4.1-cp314-cp314-macosx_15_0_arm64.whl CPython 3.14 CPython 3.14 macOS 15.0+ ARM64 Details
opendht-4.4.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
opendht-4.4.1-cp313-cp313-manylinux_2_34_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ x86-64 Details
opendht-4.4.1-cp313-cp313-manylinux_2_34_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ ARM64 Details
opendht-4.4.1-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details
opendht-4.4.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
opendht-4.4.1-cp312-cp312-manylinux_2_34_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64 Details
opendht-4.4.1-cp312-cp312-manylinux_2_34_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ ARM64 Details
opendht-4.4.1-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details
opendht-4.4.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
opendht-4.4.1-cp311-cp311-manylinux_2_34_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ x86-64 Details
opendht-4.4.1-cp311-cp311-manylinux_2_34_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ ARM64 Details
opendht-4.4.1-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details
opendht-4.4.1-cp310-cp310-manylinux_2_34_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ x86-64 Details
opendht-4.4.1-cp310-cp310-manylinux_2_34_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ ARM64 Details
opendht-4.4.1-cp39-cp39-manylinux_2_34_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.34+ x86-64 Details

Total release size: 101.1 MB

Release files / opendht-4.4.1-cp314-cp314-win_amd64.whl

Download URL opendht-4.4.1-cp314-cp314-win_amd64.whl
Size 5.7 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
cd16cdd64728339d731e0866bfea7eb93efd66215ff84d7060a2745f45dbc492
BLAKE2b-256 checksum
How to use checksums
d10ec453e055d5a0f266f573417160167d5bfbc8245b6762ca6fd75c211f473d
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.1-cp314-cp314-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.1-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
f2840fbf00657d700a57ba7361d08896c21f41933477fbcad890f0bb0f0e68db
BLAKE2b-256 checksum
How to use checksums
21eb42d2cb9e60c7f31672e6cb77f9b4783daad3b508f8805079281720047dc9
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.1-cp314-cp314-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.1-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
99219a4b8d0570c77e0f4ddeb82c87acf5675745eb3f12a8bfc2d9243b520487
BLAKE2b-256 checksum
How to use checksums
725fa01a5119888a82d5f95942441236d6aa546f8ced014c7244e3d42b9b7652
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.1-cp314-cp314-macosx_15_0_arm64.whl

Download URL opendht-4.4.1-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
35c87cbba79ad87d399ebbb2e26bff027aa639599ab9deadde9f0578f08d7797
BLAKE2b-256 checksum
How to use checksums
65bd8c5e8671e9349c1e07ad6b6e8df6eaa722e7d4f3d12bb5b93807995b598a
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.1-cp313-cp313-win_amd64.whl

Download URL opendht-4.4.1-cp313-cp313-win_amd64.whl
Size 5.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1d6eb4db4eb1f951cbb100027368a68d77ab62f3476f4760cd64419c3267cdcb
BLAKE2b-256 checksum
How to use checksums
cc187a2cf958ba8094bca7e386f3272cd92adca5a2236489407a387f1a79314f
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.1-cp313-cp313-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.1-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
5ca90eff97215652eaa4e0b1808e874e933dbac4162652848608e19c3e0e3659
BLAKE2b-256 checksum
How to use checksums
d924d42d59ac032d59f33b5d1278a4321469d62733946393945e8a6291a49aac
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.1-cp313-cp313-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.1-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
cbf9ed97eeabe822048ad94e64de54ce46e4d0beb2525bbd920d8707cc02a97a
BLAKE2b-256 checksum
How to use checksums
5770e2ea61dde513df551a64fb818d52dd3110be7f7e1df37106232ecfa14743
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.1-cp313-cp313-macosx_15_0_arm64.whl

Download URL opendht-4.4.1-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
d3e210e06194dacf4a976adbc63482a57f59ebdbdf501715497b0f207b3c9cd0
BLAKE2b-256 checksum
How to use checksums
0f36d1bfc5c0c9ca921f256c5d94dbea4cd2b4e022d514dc490982daa6e6d383
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.1-cp312-cp312-win_amd64.whl

Download URL opendht-4.4.1-cp312-cp312-win_amd64.whl
Size 5.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e4822986095e02e826cf1739108a399d6652797c52d9376c662f113a955dc6cb
BLAKE2b-256 checksum
How to use checksums
379b2f43ac1b8bd3cf10beeeec2b132edfa4109dd28a768831423cbe1ef4d563
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.1-cp312-cp312-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.1-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
01449262a699c86e4f3054dbdd1c31c75c03efd19952015f3e0897d0e1c4f0ee
BLAKE2b-256 checksum
How to use checksums
8a56d08ac82fa3ba7f49ced12c4a6343d7bc9a25fb8d7917db19bf336a4270b9
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.1-cp312-cp312-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.1-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
9ff9da279b91918367b1714401702d4763b7bb691f4a1aecb737216a02f26f5f
BLAKE2b-256 checksum
How to use checksums
0cac95885497455a622dd9713920134b93d40a2882c9bb4df84cafe9a6aef2d7
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.1-cp312-cp312-macosx_15_0_arm64.whl

Download URL opendht-4.4.1-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
ef7405c7af01e52b98c10410a6300d14de5631fc903ec2b1d175369a0e20e119
BLAKE2b-256 checksum
How to use checksums
14cbc3483e470ec1016083a5298f1d5717cbe22144e16029a0324ed188f07ad7
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.1-cp311-cp311-win_amd64.whl

Download URL opendht-4.4.1-cp311-cp311-win_amd64.whl
Size 5.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
caa08656d167ca60b76f1d61fd14ee8cc1e747ac5454ac3f207ee4aa00859207
BLAKE2b-256 checksum
How to use checksums
a47bbccef184afbe0a90141a5245de947aa76f395df00d442bbbcb10656f2cf9
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.1-cp311-cp311-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.1-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
3dfaebfaf391727609cab8813e8b536085305a74adaba4b151f41bc48a3c4913
BLAKE2b-256 checksum
How to use checksums
80f40b2bb16ab03c82446111955be18057c6c0fab3b52031d451b89a849a67cd
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.1-cp311-cp311-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.1-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
e06c37dbec8f870f61e417196001c22319dd1d71ae30651a85b207f364821fe8
BLAKE2b-256 checksum
How to use checksums
b96a2fe83c18fc092209826868309a6b1a13d431976af2c0e4eefd5ce9588042
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.1-cp311-cp311-macosx_15_0_arm64.whl

Download URL opendht-4.4.1-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
acc8369901f6129b4033d1dcac3b46407f6e57d1b050f278f2ec348253682490
BLAKE2b-256 checksum
How to use checksums
03e523c335e6e23c3784401373d9ef51883aa94cc99cbf38f2d77b9dfae6bb5f
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.1-cp310-cp310-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.1-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
4eedaf07fd39534077455c3c8b0767d1366b83f5bdd26fd0aa3cff8835adb08b
BLAKE2b-256 checksum
How to use checksums
51fb2e0d2e8b688a8aec10cf1aae7a140d37964a0ba057f01ec69d4e062d31ff
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.1-cp310-cp310-manylinux_2_34_aarch64.whl

Download URL opendht-4.4.1-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
4f9f46321d4c5e245da45533dec5f5f86c88bba6e048ea3e94bc050270cd0bc5
BLAKE2b-256 checksum
How to use checksums
08b91a8528df74a5aa7da2ef5d71cf10514fa7e93e8c2239685bb0ee6835c1b6
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.1-cp39-cp39-manylinux_2_34_x86_64.whl

Download URL opendht-4.4.1-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
b7ef34a346f2dc95377d01bac028579b3169a63b22696d279488c313a18b7ab1
BLAKE2b-256 checksum
How to use checksums
80424eeaaf716691efe85077b828163dc203c8302c35f44a97e51ec3d957b4ca
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.1 This release

19 release files

4.4.0

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