From cacd7555c3aca7e26cee270b1946e1d1d5c6d31e Mon Sep 17 00:00:00 2001 From: David Dias Date: Wed, 25 Nov 2015 17:27:39 +0000 Subject: [PATCH 1/2] update implementations section --- libp2p/8-implementations.md | 89 ++++++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 36 deletions(-) diff --git a/libp2p/8-implementations.md b/libp2p/8-implementations.md index ad0255db9..0f831e0cf 100644 --- a/libp2p/8-implementations.md +++ b/libp2p/8-implementations.md @@ -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 + - [abstract-transport](https://github.com/diasdavid/abstract-transport) + - [abstract-connection](https://github.com/diasdavid/abstract-connection) + - libp2p-tcp + - libp2p-udp + - libp2p-udt + - libp2p-utp + - libp2p-webrtc + - libp2p-cjdns + - Stream Muxing + - [abstract-stream-muxer](https://github.com/diasdavid/abstract-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 + - [abstract-record-store](https://github.com/diasdavid/abstract-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 From 9f7128253eeb5fa1cb57e6cf5e81b83be7b88bbc Mon Sep 17 00:00:00 2001 From: David Dias Date: Fri, 11 Dec 2015 20:50:05 -0800 Subject: [PATCH 2/2] s/abstract/interface --- libp2p/8-implementations.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libp2p/8-implementations.md b/libp2p/8-implementations.md index 0f831e0cf..a8f67f1db 100644 --- a/libp2p/8-implementations.md +++ b/libp2p/8-implementations.md @@ -11,8 +11,8 @@ This is the list of current modules available for libp2p: - libp2p-identify - libp2p-ping - Transports - - [abstract-transport](https://github.com/diasdavid/abstract-transport) - - [abstract-connection](https://github.com/diasdavid/abstract-connection) + - [interface-transport](https://github.com/diasdavid/interface-transport) + - [interface-connection](https://github.com/diasdavid/interface-connection) - libp2p-tcp - libp2p-udp - libp2p-udt @@ -20,7 +20,7 @@ This is the list of current modules available for libp2p: - libp2p-webrtc - libp2p-cjdns - Stream Muxing - - [abstract-stream-muxer](https://github.com/diasdavid/abstract-stream-muxer) + - [interface-stream-muxer](https://github.com/diasdavid/interface-stream-muxer) - libp2p-spdy - libp2p-multiplex - Crypto Channel @@ -35,7 +35,7 @@ This is the list of current modules available for libp2p: - libp2p-railing - **Distributed Record Store** - libp2p-record - - [abstract-record-store](https://github.com/diasdavid/abstract-record-store) + - [interface-record-store](https://github.com/diasdavid/interface-record-store) - libp2p-distributed-record-store - libp2p-kad-record-store - **Generic**