{"id":19519765,"url":"https://github.com/ep2p/kademlia-netty","last_synced_at":"2026-04-19T01:07:00.045Z","repository":{"id":39287103,"uuid":"494360842","full_name":"ep2p/kademlia-netty","owner":"ep2p","description":"Java implementation of Kademlia DHT using netty and abstraction layer","archived":false,"fork":false,"pushed_at":"2022-12-31T10:44:28.000Z","size":180,"stargazers_count":1,"open_issues_count":3,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-06T03:05:07.009Z","etag":null,"topics":["java","kademlia","kademlia-dht","netty"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ep2p.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-20T07:15:35.000Z","updated_at":"2024-10-18T18:35:10.000Z","dependencies_parsed_at":"2023-01-31T19:01:24.462Z","dependency_job_id":null,"html_url":"https://github.com/ep2p/kademlia-netty","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/ep2p/kademlia-netty","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ep2p%2Fkademlia-netty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ep2p%2Fkademlia-netty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ep2p%2Fkademlia-netty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ep2p%2Fkademlia-netty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ep2p","download_url":"https://codeload.github.com/ep2p/kademlia-netty/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ep2p%2Fkademlia-netty/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31990579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"ssl_error","status_checked_at":"2026-04-18T20:23:29.375Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","kademlia","kademlia-dht","netty"],"created_at":"2024-11-11T00:21:38.433Z","updated_at":"2026-04-19T01:07:00.022Z","avatar_url":"https://github.com/ep2p.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.ep2p/kademlia-netty/badge.png?gav=true)](https://maven-badges.herokuapp.com/maven-central/io.ep2p/kademlia-netty)\n[![Github Releases](https://badgen.net/github/release/ep2p/kademlia-netty)](https://github.com/ep2p/kademlia-netty/releases)\n[![Open Issues](https://badgen.net/github/open-issues/ep2p/kademlia-netty)](https://github.com/ep2p/kademlia-netty/issues)\n[![Liscence](https://badgen.net/github/license/ep2p/kademlia-netty)](https://github.com/ep2p/kademlia-netty/blob/main/LICENSE)\n\n# kademlia netty\n**Status**: [ready to use]. [active maintainance].\nPlayground (sample runnable project) [available here](https://github.com/ep2p/kademlia-netty-standalone-test).\n\n---\n\nImplementation of [kademlia API](https://github.com/ep2p/kademlia-api) DHT using:\n\n- Netty (as HTTP/1.1 server for each node, including [`ConnectionInfo`](https://github.com/ep2p/kademlia-api#connectioninfo) with `host` and `port`)\n- OKHttp (as [`RequestSender`](https://github.com/ep2p/kademlia-api#messagesender-interface) implementation)\n- ([Kademlia Gson Serialization](https://github.com/ep2p/kademlia-serialization-gson))\n\nThis library uses `BigInteger` as Node IDs and `NettyConnectionInfo` as implementation of `ConnectionInfo` interafce.\n\nHowever, it is still abstract, therefore you should implement some parts that are mentioned in [kademlia API](https://github.com/ep2p/kademlia-api) such as:\n\n- [DHT Repository](https://github.com/ep2p/kademlia-api#dht)\n- Mechanism to persist and reload [Routing Table](https://github.com/ep2p/kademlia-api#routingtable)\n- You still need to configure [`NodeSettings`](https://github.com/ep2p/kademlia-api#configuration). Default one may not be suitable for you.\n- You need to implement [`KeyHasGenerator`](https://github.com/ep2p/kademlia-api/blob/main/src/main/java/io/ep2p/kademlia/node/KeyHashGenerator.java).\n    This is used for bounding the key sizes to network size before storing messages.\n  \n\n\n\n---\n\n## Examples\n\nThere are few working examples in tests directory.\n\n[Main example](https://github.com/ep2p/kademlia-netty/blob/main/src/test/java/io/ep2p/kademlia/netty/examples/Example.java) \nhas everything for you to start understanding how this library works. It creates 2 nodes and stores data in DHT.\n\n[Custom DTO Example](https://github.com/ep2p/kademlia-netty/blob/main/src/test/java/io/ep2p/kademlia/netty/examples/CustomDTOSerialization.java)\nis on top of previous example, but this time we are serializing and storing a different DTO object called `Person` instead of a simple String.\n\n\n---\n\n## Installation\n\nUsing maven:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.ep2p\u003c/groupId\u003e\n    \u003cartifactId\u003ekademlia-netty\u003c/artifactId\u003e\n    \u003cversion\u003e0.3.2-RELEASE\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n\n---\n\n## Donations\n\nCoffee has a cost :smile:\n\nAny  sort of small or large donations can be a motivation in maintaining this repository and related repositories.\n\n- **ETH**: `0x5F120228C12e2C6923AfDeb0e811d74160166d90`\n- **TRC20**: `TJjw5n26KFBqkJQbs7eKdxkVuk4pvJdFzE`\n- **BTC**: `bc1qmtewrl7srjrkl8t4z5vantuqkz086srj4clzh3`\n\n\nCheers\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fep2p%2Fkademlia-netty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fep2p%2Fkademlia-netty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fep2p%2Fkademlia-netty/lists"}