diff --git a/README.md b/README.md index 15584ec7..8433a9d0 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,13 @@ DhtCpp === A lightweight C++11 Distributed Hash Table implementation - * Light C++11 DHT implementation + * Light C++11 Kademlia DHT library * Simple API * Support for arbitrary value types with common types built-in: simple blob (user data) or bittorrent-style "service announcement" * "Identity" layer with data signature and encryption (using GnuTLS) * Value edition authentified by the identity layer or with custom per-value-type hooks * Fast bootstrap and announce time - * Originally based on https://github.com/jech/dht + * Originally based on https://github.com/jech/dht by Juliusz Chroboczek ***work in progress*** @@ -16,8 +16,31 @@ Dependencies - - GnuTLS 3.1+, used to compute hashes and for the identity layer. -todo +TODO - * Event listening * Documention * ... + +Examples +- +```c++ +dht::DhtRunner dht; + +// Launch a new dht node using generated RSA keys, +// and listen on port 4222. +dht.run(4222, dht::crypto::generateIdentity()); + +// put some data on the dht +std::vector some_data(5, 10); +dht.put("unique_key", some_data); + +// get data from the dht +dht.get("other_unique_key", [](const std::vector>& values) { + // Callback called when values are found + for (const auto& value : values) + std::cout << "Found value: " << value << std::endl; + return true; // return false to stop the search +}); + +```