Skip to content

Commit

Permalink
Merge pull request #49 from ipfs/libp2p/implementations
Browse files Browse the repository at this point in the history
libp2p - Update Implementations Chapter
  • Loading branch information
daviddias committed Dec 12, 2015
2 parents 76dc6d1 + 9f71282 commit 704df04
Showing 1 changed file with 53 additions and 36 deletions.
89 changes: 53 additions & 36 deletions libp2p/8-implementations.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,57 @@
8 Implementations
=================

This is a list of known libp2p module implementations. They are components that respect the interfaces and expectations defined in the "Interfaces" chapter, and can be composed to make a working libp2p library.
An libp2p implementation should(recommended) follow a certain level of granulatiry when implementing different modules and functionalities, so that common interfaces are easy to expose, test and check for interoperability with other implementations.

This is the list of current modules available for libp2p:

- libp2p (entry point)
- **Swarm**
- libp2p-swarm
- libp2p-identify
- libp2p-ping
- Transports
- [interface-transport](https://github.com/diasdavid/interface-transport)
- [interface-connection](https://github.com/diasdavid/interface-connection)
- libp2p-tcp
- libp2p-udp
- libp2p-udt
- libp2p-utp
- libp2p-webrtc
- libp2p-cjdns
- Stream Muxing
- [interface-stream-muxer](https://github.com/diasdavid/interface-stream-muxer)
- libp2p-spdy
- libp2p-multiplex
- Crypto Channel
- libp2p-tls
- libp2p-secio
- **Peer Routing**
- libp2p-kad-routing
- libp2p-mDNS-routing
- **Discovery**
- libp2p-mdns-discovery
- libp2p-random-walk
- libp2p-railing
- **Distributed Record Store**
- libp2p-record
- [interface-record-store](https://github.com/diasdavid/interface-record-store)
- libp2p-distributed-record-store
- libp2p-kad-record-store
- **Generic**
- PeerInfo
- PeerId
- multihash
- multiaddr
- multistream
- multicodec
- ipld
- repo

Current know implementations (or WIP) are:

- JavaScript - https://github.com/diasdavid/js-libp2p
- Go - https://github.com/ipfs/go-ipfs
- Python - https://github.com/candeira/py-ipfs/blob/readme-roadmap/README.md
- Rust - https://github.com/diasdavid/rust-libp2p

## 8.1 libp2p

- https://github.com/diasdavid/node-libp2p
- https://github.com/diasdavid/node-ipfs-logger

## 8.2 Peer Discovery

- https://github.com/diasdavid/node-ipfs-mdns
- https://github.com/diasdavid/node-ipfs-railing
- https://github.com/diasdavid/node-ipfs-random-walk

## 8.3 Peer Routing

- https://github.com/diasdavid/node-ipfs-kad-router

## 8.4 Swarm

- https://github.com/diasdavid/node-ipfs-swarm
- https://github.com/diasdavid/node-ipfs-ping
- https://github.com/diasdavid/node-spdy-stream-muxer
- https://github.com/diasdavid/abstract-stream-muxer

## 8.5 Record Store

- https://github.com/diasdavid/node-ipfs-record
- https://github.com/diasdavid/node-ipfs-record-store

## 8.6 Data Structures

- https://github.com/diasdavid/node-ipfs-peer-id
- https://github.com/diasdavid/node-ipfs-peer

## 8.7 Implementations of Specs libp2p depends on

- https://github.com/diasdavid/node-multistream

0 comments on commit 704df04

Please sign in to comment.