Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

Commit fb855cb

Browse files
committed
Merge pull request #103 from ipfs/update/roadmap
move, update and clean the roadmap
2 parents dd91350 + 8d99d45 commit fb855cb

File tree

2 files changed

+168
-113
lines changed

2 files changed

+168
-113
lines changed

README.md

+18-113
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
IPFS JavaScript Implementation
22
==============================
33

4-
[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) [[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) ![Build Status](https://travis-ci.org/ipfs/js-ipfs.svg?style=flat-square)](https://travis-ci.org/ipfs/js-ipfs) ![](https://img.shields.io/badge/coverage-75%25-yellow.svg?style=flat-square) [![Dependency Status](https://david-dm.org/ipfs/js-ipfs.svg?style=flat-square)](https://david-dm.org/ipfs/js-ipfs) [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard)
4+
[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io)
5+
[[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) ![Build Status](https://travis-ci.org/ipfs/js-ipfs.svg?style=flat-square)](https://travis-ci.org/ipfs/js-ipfs)
6+
![](https://img.shields.io/badge/coverage-75%25-yellow.svg?style=flat-square)
7+
[![Dependency Status](https://david-dm.org/ipfs/js-ipfs.svg?style=flat-square)](https://david-dm.org/ipfs/js-ipfs)
8+
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard)
59

6-
> IPFS JavaScript implementation entry point and roadmap
10+
> IPFS JavaScript implementation.
711
812
# Description
913

10-
This repo will contain the entry point for the JavaScript implementation of IPFS spec, similar to [go-ipfs](https://github.com/ipfs/go-ipfs).
14+
This repo contains the JavaScript implementation of the IPFS protocol, with feature parity to the [Go implementation](https://github.com/ipfs/go-ipfs).
1115

12-
We are building js-ipfs because it will inform how go-ipfs works, separate concerns, and allow a complete in-browser-tab implementation with no install friction. Most of the work for IPFS does happen elsewhere, but this is an equally important part of our roadmap to lead to a permanent, IPFSed web.
16+
# Project status
17+
18+
Consult the [Roadmap](/ROADMAP.md) for a complete state description of the project. A lot of components can be used currently, but it is a WIP, so beware of the Dragons.
1319

1420
# Contribute
1521

@@ -23,8 +29,6 @@ IPFS implementation in JavaScript is a work in progress. As such, there's a few
2329

2430
# Usage
2531

26-
> **Disclamer: Currently, js-ipfs is not a full IPFS node, it delegates all of its operations to a IPFS node available in the network, see "Getting jsipfs ready" below for more details.
27-
2832
### Installation
2933

3034
```bash
@@ -47,6 +51,14 @@ $ npm install ipfs --global
4751

4852
The cli is availble through `jsipfs` in your terminal
4953

54+
# Examples
55+
56+
> **WIP**
57+
58+
# API
59+
60+
> **WIP**
61+
5062
# Project structure
5163

5264
```
@@ -141,110 +153,3 @@ Files is the API that lets us work with IPFS objects (DAG Nodes) as if they were
141153
#### Importer
142154

143155
Importer are a set of layouts (e.g. UnixFS) and chunkers (e.g: fixed-size, rabin, etc) that convert data to a MerkleDAG representation inside IPFS.
144-
145-
# Usage
146-
147-
> This is a WIP, beware of Dragons!
148-
149-
# Project Status
150-
151-
### Per component view
152-
153-
| Name | Spec | Disc |
154-
| :----| :----| :----|
155-
| data importing | https://github.com/ipfs/specs/pull/57 | https://github.com/ipfs/js-ipfs/issues/41
156-
| repo | https://github.com/ipfs/specs/tree/master/repo | https://github.com/ipfs/js-ipfs/issues/51
157-
| network layer | https://github.com/ipfs/specs/tree/master/libp2p | https://github.com/diasdavid/js-libp2p/issues
158-
| bitswap | https://github.com/ipfs/js-ipfs/issues/51 | https://github.com/ipfs/js-ipfs/issues/51
159-
| pin | | https://github.com/ipfs/js-ipfs/issues/59
160-
| files | | https://github.com/ipfs/js-ipfs/issues/60
161-
| daemon | | https://github.com/ipfs/js-ipfs/issues/57
162-
| object | | https://github.com/ipfs/js-ipfs/issues/58
163-
| block | | https://github.com/ipfs/js-ipfs/issues/50
164-
| bootstrap | | https://github.com/ipfs/js-ipfs/issues/46
165-
| init | | https://github.com/ipfs/js-ipfs/issues/42
166-
167-
### Per feature view
168-
169-
- **core**
170-
- [x] version
171-
- [x] daemon
172-
- [x] id
173-
- [x] block
174-
- [x] get
175-
- [x] put
176-
- [x] stat
177-
- [x] object - Basic manipulation of the DAG
178-
- [x] data
179-
- [x] get
180-
- [x] links
181-
- [x] new
182-
- [x] patch
183-
- [x] put
184-
- [x] stat
185-
- [ ] refs - Listing of references. (alking around the graph)
186-
- [ ] local
187-
- [ ] repo
188-
- [ ] init
189-
- [ ] stat
190-
- [ ] gc
191-
- [ ] pin
192-
- [ ] add
193-
- [ ] ls
194-
- [ ] rm
195-
- [ ] log
196-
- [ ] level
197-
- [ ] tail
198-
- **extensions**
199-
- [ ] name (IPNS)
200-
- [ ] publish
201-
- [ ] resolve
202-
- [ ] dns
203-
- [ ] resolve
204-
- [ ] tar
205-
- [ ] add
206-
- [ ] cat
207-
- [ ] tour
208-
- [ ] list
209-
- [ ] next
210-
- [ ] restart
211-
- [ ] files
212-
- [x] add
213-
- [ ] cat
214-
- [ ] get
215-
- [ ] stat - Statistics about everything
216-
- [ ] bw
217-
- [ ] mount
218-
- [x] bootstrap
219-
- [x] add
220-
- [x] list
221-
- [x] rm
222-
- [ ] bitswap
223-
- [ ] stat
224-
- [ ] unwant
225-
- [ ] wantlist
226-
- **tooling**
227-
- [x] commands
228-
- [ ] update
229-
- [ ] init - sugar on top of ipfs repo init
230-
- [x] config
231-
- [x] edit
232-
- [x] replace
233-
- [x] show
234-
- **network** (bubbles up from libp2p)
235-
- [ ] ping
236-
- [ ] dht
237-
- [ ] findpeer
238-
- [ ] findprovs
239-
- [ ] get
240-
- [ ] put
241-
- [ ] query
242-
- [ ] swarm
243-
- [ ] addrs
244-
- [ ] connect
245-
- [ ] disconnect
246-
- [ ] filters
247-
- [ ] peers
248-
- [ ] records (IPRS)
249-
- [ ] put
250-
- [ ] get

ROADMAP.md

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
IPFS JavaScript Implementation roadmap
2+
======================================
3+
4+
# Milestone 1 - js-ipfs on the browser
5+
6+
> Summary: This milestone's focus is to ship a version of js-ipfs that can be embed in browser applications, creating an IPFS node inside a browser web application.
7+
8+
### Tasks:
9+
10+
- [ ] files API
11+
- [x] js-ipfs-unixfs
12+
- [x] fixed size chunker
13+
- [x] unixfs layout
14+
- [x] jsipfs files add
15+
- [ ] jsipfs files get
16+
- [ ] jsipfs swarm
17+
- [x] listen on WebSockets + TCP
18+
- [x] spdy support
19+
- [x] identify protocol
20+
- [x] multistream
21+
- [ ] connect
22+
- [ ] interop with go-ipfs (tests)
23+
- [x] block API
24+
- [x] object API
25+
- [x] js-ipfs-merkle-dag
26+
- [x] repo API
27+
- [ ] bitswap
28+
- js-libp2p
29+
- [x] js-libp2p-swarm
30+
- [x] js-libp2p-tcp
31+
- [x] js-libp2p-websockets
32+
- [x] js-libp2p-spdy
33+
- [x] js-multiaddr
34+
- [x] js-multistream
35+
- [x] js-peer-id
36+
- [x] js-peer-info
37+
- [x] js-webcrypto
38+
39+
### Notes:
40+
41+
- This releasel won't:
42+
- support WebRTC, the communication between browser and machine nodes will happen through WebSockets+SPDY.
43+
- won't have DHT (Kademlia Routing and Record Store) support.
44+
45+
# Milestone 2 - TBD
46+
47+
> Summary: TO BE DISCUSSED
48+
49+
# Project Status
50+
51+
### Per component view
52+
53+
| Name | Spec | Disc |
54+
| :----| :----| :----|
55+
| data importing | https://github.com/ipfs/specs/pull/57 | https://github.com/ipfs/js-ipfs/issues/41
56+
| repo | https://github.com/ipfs/specs/tree/master/repo | https://github.com/ipfs/js-ipfs/issues/51
57+
| network layer | https://github.com/ipfs/specs/tree/master/libp2p | https://github.com/diasdavid/js-libp2p/issues
58+
| bitswap | https://github.com/ipfs/js-ipfs/issues/51 | https://github.com/ipfs/js-ipfs/issues/51
59+
| pin | | https://github.com/ipfs/js-ipfs/issues/59
60+
| files | | https://github.com/ipfs/js-ipfs/issues/60
61+
| daemon | | https://github.com/ipfs/js-ipfs/issues/57
62+
| object | | https://github.com/ipfs/js-ipfs/issues/58
63+
| block | | https://github.com/ipfs/js-ipfs/issues/50
64+
| bootstrap | | https://github.com/ipfs/js-ipfs/issues/46
65+
| init | | https://github.com/ipfs/js-ipfs/issues/42
66+
67+
### Per feature view
68+
69+
- **core**
70+
- [x] version
71+
- [x] daemon
72+
- [x] id
73+
- [x] block
74+
- [x] get
75+
- [x] put
76+
- [x] stat
77+
- [x] object - Basic manipulation of the DAG
78+
- [x] data
79+
- [x] get
80+
- [x] links
81+
- [x] new
82+
- [x] patch
83+
- [x] put
84+
- [x] stat
85+
- [ ] refs - Listing of references. (alking around the graph)
86+
- [ ] local
87+
- [ ] repo
88+
- [ ] init
89+
- [ ] stat
90+
- [ ] gc
91+
- [ ] pin
92+
- [ ] add
93+
- [ ] ls
94+
- [ ] rm
95+
- [ ] log
96+
- [ ] level
97+
- [ ] tail
98+
- **extensions**
99+
- [ ] name (IPNS)
100+
- [ ] publish
101+
- [ ] resolve
102+
- [ ] dns
103+
- [ ] resolve
104+
- [ ] tar
105+
- [ ] add
106+
- [ ] cat
107+
- [ ] tour
108+
- [ ] list
109+
- [ ] next
110+
- [ ] restart
111+
- [ ] files
112+
- [x] add
113+
- [ ] cat
114+
- [ ] get
115+
- [ ] stat - Statistics about everything
116+
- [ ] bw
117+
- [ ] mount
118+
- [x] bootstrap
119+
- [x] add
120+
- [x] list
121+
- [x] rm
122+
- [ ] bitswap
123+
- [ ] stat
124+
- [ ] unwant
125+
- [ ] wantlist
126+
- **tooling**
127+
- [x] commands
128+
- [ ] update
129+
- [ ] init - sugar on top of ipfs repo init
130+
- [x] config
131+
- [x] edit
132+
- [x] replace
133+
- [x] show
134+
- **network** (bubbles up from libp2p)
135+
- [ ] ping
136+
- [ ] dht
137+
- [ ] findpeer
138+
- [ ] findprovs
139+
- [ ] get
140+
- [ ] put
141+
- [ ] query
142+
- [ ] swarm
143+
- [ ] addrs
144+
- [ ] connect
145+
- [ ] disconnect
146+
- [ ] filters
147+
- [ ] peers
148+
- [ ] records (IPRS)
149+
- [ ] put
150+
- [ ] get

0 commit comments

Comments
 (0)