{"id":20388233,"url":"https://github.com/libp2p/jvm-libp2p","last_synced_at":"2025-05-16T02:02:22.770Z","repository":{"id":35667905,"uuid":"189293403","full_name":"libp2p/jvm-libp2p","owner":"libp2p","description":"a libp2p implementation for the JVM, written in Kotlin 🔥","archived":false,"fork":false,"pushed_at":"2025-05-01T07:31:17.000Z","size":2806,"stargazers_count":298,"open_issues_count":35,"forks_count":78,"subscribers_count":23,"default_branch":"develop","last_synced_at":"2025-05-01T08:29:12.383Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://libp2p.io","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libp2p.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-05-29T20:28:05.000Z","updated_at":"2025-05-01T07:31:21.000Z","dependencies_parsed_at":"2023-09-28T10:13:47.867Z","dependency_job_id":"c92eb866-19f9-4d42-a3db-281d96e206cd","html_url":"https://github.com/libp2p/jvm-libp2p","commit_stats":{"total_commits":890,"total_committers":32,"mean_commits":27.8125,"dds":0.5764044943820225,"last_synced_commit":"2e98c455df4a92b48b65588d5f814eafdbd534e8"},"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libp2p%2Fjvm-libp2p","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libp2p%2Fjvm-libp2p/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libp2p%2Fjvm-libp2p/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libp2p%2Fjvm-libp2p/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libp2p","download_url":"https://codeload.github.com/libp2p/jvm-libp2p/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254453646,"owners_count":22073616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-15T03:08:10.667Z","updated_at":"2025-05-16T02:02:22.706Z","avatar_url":"https://github.com/libp2p.png","language":"Kotlin","funding_links":[],"categories":["Implementations","网络编程","\u003ca name=\"Kotlin\"\u003e\u003c/a\u003eKotlin","Projects","Kotlin"],"sub_categories":["Libraries"],"readme":"# jvm-libp2p\n\n[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/)\n[![Gitter](https://img.shields.io/gitter/room/libp2p/jvm-libp2p.svg)](https://gitter.im/jvm-libp2p/community)\n[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p)\n![Build Status](https://github.com/libp2p/jvm-libp2p/actions/workflows/build.yml/badge.svg?branch=master)\n[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io)\n\n[Libp2p](https://libp2p.io/) implementation for the JVM, written in Kotlin 🔥\n\n## Components\n\nList of components in the Libp2p spec and their JVM implementation status \n\n|                          | Component                                                                                       |      Status      |\n|--------------------------|-------------------------------------------------------------------------------------------------|:----------------:|\n| **Transport**            | tcp                                                                                             |  :green_apple:   |\n|                          | [quic](https://github.com/libp2p/specs/tree/master/quic)                                        |     :tomato:     |\n|                          | websocket                                                                                       |     :lemon:      |\n|                          | [webtransport](https://github.com/libp2p/specs/tree/master/webtransport)                        |                  |\n|                          | [webrtc-browser-to-server](https://github.com/libp2p/specs/blob/master/webrtc/webrtc-direct.md) |                  |\n|                          | [webrtc-private-to-private](https://github.com/libp2p/specs/blob/master/webrtc/webrtc.md)       |                  |\n| **Secure Communication** | [noise](https://github.com/libp2p/specs/blob/master/noise/)                                     |  :green_apple:   |\n|                          | [tls](https://github.com/libp2p/specs/blob/master/tls/tls.md)                                   |     :lemon:      |\n|                          | [plaintext](https://github.com/libp2p/specs/blob/master/plaintext/README.md)                    |     :lemon:      |\n|                          | [secio](https://github.com/libp2p/specs/blob/master/secio/README.md) **(deprecated)**           |  :green_apple:   |\n| **Protocol Select**      | [multistream](https://github.com/multiformats/multistream-select)                               |  :green_apple:   |\n| **Stream Multiplexing**  | [yamux](https://github.com/libp2p/specs/blob/master/yamux/README.md)                            |     :lemon:      |\n|                          | [mplex](https://github.com/libp2p/specs/blob/master/mplex/README.md)                            |  :green_apple:   |\n| **NAT Traversal**        | [circuit-relay-v2](https://github.com/libp2p/specs/blob/master/relay/circuit-v2.md)             |     :lemon:      |\n|                          | [autonat](https://github.com/libp2p/specs/tree/master/autonat)                                  |     :lemon:      |\n|                          | [hole-punching](https://github.com/libp2p/specs/blob/master/connections/hole-punching.md)       |                  |\n| **Discovery**            | [bootstrap](https://github.com/libp2p/specs/blob/master/kad-dht/README.md#bootstrap-process)    |                  |\n|                          | random-walk                                                                                     |                  |\n|                          | [mdns-discovery](https://github.com/libp2p/specs/blob/master/discovery/mdns.md)                 |     :lemon:      |\n|                          | [rendezvous](https://github.com/libp2p/specs/blob/master/rendezvous/README.md)                  |                  |\n| **Peer Routing**         | [kad-dht](https://github.com/libp2p/specs/blob/master/kad-dht/README.md)                        |                  |\n| **Publish/Subscribe**    | floodsub                                                                                        |     :lemon:      |\n|                          | [gossipsub](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub)                       |  :green_apple:   |\n| **Storage**              | record                                                                                          |                  |\n| **Other protocols**      | [ping](https://github.com/libp2p/specs/blob/master/ping/ping.md)                                |  :green_apple:   |\n|                          | [identify](https://github.com/libp2p/specs/blob/master/identify/README.md)                      |  :green_apple:   |\n\nLegend:\n- :green_apple: - tested in production\n- :lemon: - prototype or beta, not tested in production\n- :tomato: - in progress \n\n## Gossip simulator\n\nDeterministic Gossip simulator which may simulate networks as large as 10000 of peers\n\nPlease check the Simulator [README](tools/simulator/README.md) for more details\n\n## Android support\n\nThe library is basically being developed with Android compatibility in mind. \nHowever we are not aware of anyone using it in production.\n\nThe `examples/android-chatter` module contains working sample Android application. This module is ignored by the Gradle \nbuild when no Android SDK is installed. \nTo include the Android module define a valid SDK location with an `ANDROID_HOME` environment variable\nor by setting the `sdk.dir` path in your project's local properties file local.properties.\n\nImporting the project into Android Studio should work out of the box.\n\n## Adding as a dependency to your project\n\nHosting of artefacts is graciously provided by [Cloudsmith](https://cloudsmith.com).\n\n[![Latest version of 'jvm-libp2p' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/libp2p/jvm-libp2p/maven/jvm-libp2p/latest/a=noarch;xg=io.libp2p/?render=true\u0026show_latest=true)](https://cloudsmith.io/~libp2p/repos/jvm-libp2p/packages/detail/maven/jvm-libp2p/latest/a=noarch;xg=io.libp2p/)\n\nAs an alternative, artefacts are also available on [JitPack](https://jitpack.io/).\n\n[![](https://jitpack.io/v/libp2p/jvm-libp2p.svg)](https://jitpack.io/#libp2p/jvm-libp2p)\n\n### Using Gradle\nAdd the required repositories to the `repositories` section of your Gradle file.\n```groovy\nrepositories {\n  // ...\n  maven { url \"https://dl.cloudsmith.io/public/libp2p/jvm-libp2p/maven/\" }\n  maven { url \"https://jitpack.io\" }  \n  maven { url \"https://artifacts.consensys.net/public/maven/maven/\" }\n}\n```\nAdd the library to the `implementation` part of your Gradle file.\n```groovy\ndependencies {\n  // ...\n  implementation 'io.libp2p:jvm-libp2p:X.Y.Z-RELEASE'\n}\n```\n### Using Maven\nAdd the required repositories  to the `dependencyManagement` section of the pom file:\n```xml\n\u003crepositories\u003e\n  \u003crepository\u003e\n    \u003cid\u003elibp2p-jvm-libp2p\u003c/id\u003e\n    \u003curl\u003ehttps://dl.cloudsmith.io/public/libp2p/jvm-libp2p/maven/\u003c/url\u003e\n  \u003c/repository\u003e\n  \u003crepository\u003e\n    \u003cid\u003eJitPack\u003c/id\u003e\n    \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n  \u003c/repository\u003e\n  \u003crepository\u003e\n    \u003cid\u003eConsensys\u003c/id\u003e\n    \u003curl\u003ehttps://artifacts.consensys.net/public/maven/maven/\u003c/url\u003e\n  \u003c/repository\u003e\n\u003c/repositories\u003e\n```\nAdd the library to the `dependencies` section of the pom file:\n``` xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.libp2p\u003c/groupId\u003e\n  \u003cartifactId\u003ejvm-libp2p\u003c/artifactId\u003e\n  \u003cversion\u003eX.Y.Z-RELEASE\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Building the project \n\nTo build the library you will need just \n- JDK (Java Development Kit) of version 11 or higher\n \nFor building a stable release version clone the `master` branch:  \n```bash\ngit clone https://github.com/libp2p/jvm-libp2p -b master\n```\nFor building a version with the latest updates clone the `develop` (default) branch:\n```bash\ngit clone https://github.com/libp2p/jvm-libp2p\n```\n\nTo build the library from the `jvm-libp2p` folder, run:\n```bash\n./gradlew build\n```\n\nAfter the build is complete you may find the library `.jar` file here: `jvm-libp2p/build/libs/jvm-libp2p-X.Y.Z-RELEASE.jar`\n\n## Notable users\n\n- [Teku](https://github.com/Consensys/teku) - Ethereum Consensus Layer client \n- [Nabu](https://github.com/peergos/nabu) - minimal Java implementation of IPFS\n- [Peergos](https://github.com/peergos/peergos) - peer-to-peer encrypted global filesystem\n\n(Please open a pull request if you want your project to be added here)\n\n## License\n\nDual-licensed under MIT and ASLv2, by way of the [Permissive License\nStack](https://protocol.ai/blog/announcing-the-permissive-license-stack/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibp2p%2Fjvm-libp2p","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibp2p%2Fjvm-libp2p","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibp2p%2Fjvm-libp2p/lists"}