From 2b22fe9055108516d0167725ff8965e77bed309c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= Date: Sun, 24 Aug 2025 11:22:32 -0400 Subject: [PATCH] setup.py: update metadata --- CMakeLists.txt | 2 +- python/README.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ python/setup.py.in | 14 ++++++++++---- 3 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 python/README.md diff --git a/CMakeLists.txt b/CMakeLists.txt index bbabe272..78085652 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ if(NOT CMAKE_VERSION VERSION_LESS 3.30 AND NOT POLICY CMP0167) endif() set (opendht_VERSION_MAJOR 3) -set (opendht_VERSION_MINOR 5.1) +set (opendht_VERSION_MINOR 5.2) set (opendht_VERSION ${opendht_VERSION_MAJOR}.${opendht_VERSION_MINOR}) set (PACKAGE_VERSION ${opendht_VERSION}) set (VERSION "${opendht_VERSION}") diff --git a/python/README.md b/python/README.md new file mode 100644 index 00000000..7669abd1 --- /dev/null +++ b/python/README.md @@ -0,0 +1,44 @@ +# OpenDHT + +OpenDHT is a lightweight C++17 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 +* Clean and powerful C++17 map API with 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. + +## Quick Example + +```python +import opendht as dht + +node = dht.DhtRunner() +node.run() + +# Join the 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 r in results: + print(r) +``` + +## Documentation + +For more information, examples, and documentation, visit: https://opendht.net + +## License + +Copyright (C) 2014-2025 Savoir-faire Linux Inc. + +OpenDHT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. diff --git a/python/setup.py.in b/python/setup.py.in index a9537fba..e2b2ed0e 100644 --- a/python/setup.py.in +++ b/python/setup.py.in @@ -14,13 +14,19 @@ # along with this program. If not, see . from setuptools import setup, Extension -from Cython.Distutils import build_ext +import os + +with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'README.md'), 'r', encoding='utf-8') as f: + long_description = f.read() setup(name="opendht", version="@PACKAGE_VERSION@", - description="Python wrapper for OpenDHT", + description="OpenDHT: A lightweight Distributed Hash Table", + long_description=long_description, + long_description_content_type="text/markdown", + icon="opendht_icon.png", url='https://github.com/savoirfairelinux/opendht', - author="Adrien Béraud, Guillaume Roguez, Simon Désaulniers", + author="Adrien Beraud ", license="GPL-3.0-or-later", classifiers=[ 'Development Status :: 5 - Production/Stable', @@ -29,7 +35,7 @@ setup(name="opendht", 'Topic :: System :: Distributed Computing', 'Topic :: System :: Networking', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.9', ], ext_modules = [Extension( "opendht",