A standalone deployment of a libp2p host, running in its own OS process and installing a set of virtual endpoints to enable co-local applications to: communicate with peers, handle protocols, interact with the DHT, participate in pubsub, etc. no matter the language they are developed in, nor whether a native libp2p implementation exists in that language.
It has reached viable PoC stage but is not being actively worked on or maintained. If you want to play around with libp2p, go ahead and try this project out. However:
- There is little documentation and no support.
- The libp2p version used in this project will not be actively updated.
In other words: DO NOT USE IN PRODUCTION
This repo uses Go modules. Note that go >=1.12 is required.
$ # outside your GOPATH
$ git clone https://github.com/libp2p/go-libp2p-daemon
$ cd go-libp2p-daemon
$ git checkout <release tag, e.g. v0.0.1>
$ go get ./...
$ go install ./...
$ p2pd
See available releases.
Check out the GoDocs.
Daemon bindings enable applications written in other languages to interact with the libp2p daemon process programmatically, by exposing an idiomatic API that handles the socket dynamics and control protocol.
The following bindings exist so far (if you want yours added, please send a PR):
- Go (reference implementation): see the p2pclient package in this repo.
- Python: py-libp2p-daemon-bindings.
- Gerbil: gerbil-libp2p.
- Nim: nim-libp2p
- Elixir: elixir-libp2p
If you wish to implement bindings in a new language, refer to the spec for the daemon control protocol and API.
Feel free to join in. All welcome. Open an issue!
This repository falls under the IPFS Code of Conduct.
MIT
The last gx published version of this module was: 0.0.20: QmVBYP5AGurRJGiyTcyoUf5Etyvf2vwxKd8DMaQgbpJF58