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

Commit 4b1e657

Browse files
authored
Merge pull request #375 from ipfs/pm/roadmap-update
Update project roadmap
2 parents c3b2c5f + a8c5db3 commit 4b1e657

File tree

2 files changed

+181
-15
lines changed

2 files changed

+181
-15
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
[![Circle CI](https://circleci.com/gh/ipfs/js-ipfs.svg?style=svg)](https://circleci.com/gh/ipfs/js-ipfs)
1111
[![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)
1212
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
13+
[![](https://img.shields.io/badge/pm-waffle-yellow.svg?style=flat-square)](https://waffle.io/ipfs/js-ipfs)
1314

1415
> IPFS JavaScript implementation.
1516

ROADMAP.md

Lines changed: 180 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
IPFS JavaScript Implementation roadmap
22
======================================
33

4+
> We track the development of the js-ipfs project through Github issues and [Waffle.io](https://waffle.io/ipfs/js-ipfs). See our waffle board at: [https://waffle.io/ipfs/js-ipfs](https://waffle.io/ipfs/js-ipfs)
5+
46
# Milestone 1 - js-ipfs on the browser
57

68
> 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.
@@ -47,27 +49,190 @@ UPDATE:
4749
- [x] WebRTC transport with [libp2p-webrtc-star](https://github.com/libp2p/js-libp2p-webrtc-star)
4850
- [ ] [secio](https://github.com/ipfs/js-libp2p-secio)
4951

50-
# Milestone 2 - TBD
52+
# Milestone 2 - Quality and correctness of the JavaScript Implementation
53+
54+
> Summary: The focus of this milestone is quality of the JavaScript implementation so that users of the library can build their applications with confidence.
55+
56+
### Tasks:
57+
58+
- [ ] Interface definition, documentation and test coverage for both js-ipfs and js-ipfs-api. The `interface-ipfs-core` effort.
59+
- [ ] Create a process to signal users of a proposed interface change and interface changelog.
60+
- [ ] swarm API - https://github.com/ipfs/interface-ipfs-core/pull/35
61+
- [ ] block API - https://github.com/ipfs/interface-ipfs-core/pull/32
62+
- [ ] generic API - https://github.com/ipfs/interface-ipfs-core/pull/33
63+
- [ ] pinning API - https://github.com/ipfs/interface-ipfs-core/pull/34
64+
- [ ] swarm API - https://github.com/ipfs/interface-ipfs-core/pull/35
65+
- [ ] DHT API https://github.com/ipfs/interface-ipfs-core/pull/36
66+
- [ ] mfs API https://github.com/ipfs/interface-ipfs-core/pull/38
67+
- [ ] Robust testing infrastructure
68+
- [ ] Isolation of tests. This includes:
69+
- Avoid cases where there is one set up for a bunch of test files, instead make each test file be runnable by itself. This also includes removing the use of all globals (i.e js-ipfs-api).
70+
- [ ] Interoperability tests between js-ipfs and go-ipfs
71+
- [ ] Benchmarking tests
72+
- [ ] Stress tests, things like:
73+
- Spawn a reasonable amount of nodes
74+
- Add large files
75+
- Exchange large files
76+
- [ ] IPTB (InterPlanetary TestBed) Integration
77+
- [ ] Fixed identified bugs
78+
79+
### Dependencies:
80+
81+
- js-ipfs needs the following from go-ipfs (preferrably in a release) (https://github.com/ipfs/go-ipfs/issues/2738):
82+
- [ ] Do not assume that the Public Key is only transfered in secio
83+
- [ ] Websockets support (really nice to have)
84+
- [ ] use the defined protocol multicodecs https://github.com/ipfs/specs/blob/master/libp2p/7-properties.md#757-protocol-multicodecs
85+
86+
### Notes:
87+
88+
- We will be defining the API in `interface-ipfs-core`, however some pieces like DHT, mfs and pinning will not be available in js-ipfs.
89+
90+
##### Expected date of completion: `late August`
91+
92+
# Milestone 3 - Enter IPLD - Enable js-ipfs to handle both merkledag protobufs and ipld cbor objects
93+
94+
> Summary: Integration of IPLD (js-ipld and js-ipld-ipfs) into js-ipfs.
95+
96+
### Tasks:
97+
98+
NA
99+
100+
### Dependencies:
101+
102+
- [ ] IPLD migration path
103+
- [ ] go-ipfs with IPLD already integrated (it would be best)
104+
105+
### Requirements by other projects:
106+
107+
NA
108+
109+
### Notes:
110+
111+
NA
112+
113+
##### Expected date of completion: `mid September`
114+
115+
# Milestone 4 - Documentation and Developer Experience
116+
117+
> Summary: During this period, we will focus on bringing great developer experience to js-ipfs, this includes: great examples, documentation, tutorials, blog posts and more, enabling more developers to hack with js-ipfs or contribute to the project.
118+
119+
### Tasks:
120+
121+
- [ ] Amazing examples
122+
- [ ] Create the same examples available on https://ipfs.io/docs/examples/ using js-ipfs (through CLI and programatically)
123+
- [ ] Example: Create an IPFS node
124+
- [ ] Examples: Add files to IPFS
125+
- [ ] Tutorial: Build an 'pastebin' with js-ipfs
126+
- [ ] Tutorial: How to use js-ipfs in the browser
127+
- [ ] Tutorial: Make a video player with js-ipfs https://github.com/ipfs/js-ipfs/issues/128
128+
- [ ] Tutorial: Load a Webpage/WebApplication using js-ipfs
129+
- [ ] Add all of the examples to https://ipfs.io/docs/examples/
130+
- [ ] Revisit and complete the IPFS spec
131+
132+
### Dependencies:
133+
134+
NA
135+
136+
### Requirements by other projects:
137+
138+
NA
139+
140+
### Notes:
141+
142+
NA
143+
144+
##### Expected date of completion: `TBA`
145+
146+
# Milestone 5 - 1st implementation Peer Routing + Content Routing (the go-ipfs DHT)
147+
148+
> Summary: Enable content discovery in js-ipfs
149+
150+
### Tasks:
151+
152+
- [ ] js-ipfs-dht
153+
154+
### Dependencies:
155+
156+
NA
157+
158+
### Requirements by other projects:
159+
160+
NA
161+
162+
### Notes:
163+
164+
NA
165+
166+
##### Expected date of completion: `TBA`
167+
168+
# Milestone 6 - The last miles for complete feature parity with go-ipfs
169+
170+
> Summary: 100% feature parity and interop with go-ipfs
171+
172+
### Tasks:
173+
174+
- [ ] mfs
175+
- [ ] ipns
176+
- [ ] HAMT on unixfs-engine
177+
- [ ] ls
178+
- [ ] pinning
179+
- [ ] ping
180+
181+
### Dependencies:
182+
183+
NA
184+
185+
### Requirements by other projects:
186+
187+
NA
188+
189+
### Notes:
190+
191+
##### Expected date of completion: `TBA`
192+
193+
194+
# Milestone 7 - Shoot for the moon 🌑
195+
196+
> Summary: Grandiose ideas to make the js-ipfs project really awesome. It might take some time to get to them, but writting them down is always good.
197+
198+
### Tasks:
199+
200+
- [ ] InterPlanetary Lab - A test lab for the IPFS project, spawning nodes in different geographic locations with different network and machine conditions to really stress test IPFS (heavily inspired by [PlanetLab](https://www.planet-lab.org/))
201+
202+
### Dependencies:
203+
204+
NA
205+
206+
### Requirements by other projects:
207+
208+
NA
209+
210+
### Notes:
211+
212+
NA
213+
214+
##### Expected date of completion: `TBA`
215+
216+
---------------------------------------------------------------------
51217

52-
> Summary: TO BE DISCUSSED
53218

54219
# Project Status
55220

56221
### Per component view
57222

58-
| Name | Spec | Disc |
59-
| :----| :----| :----|
60-
| data importing | https://github.com/ipfs/specs/pull/57 | https://github.com/ipfs/js-ipfs/issues/41
61-
| repo | https://github.com/ipfs/specs/tree/master/repo | https://github.com/ipfs/js-ipfs/issues/51
223+
| Name | Spec | Disc |
224+
| :-------------| :----| :----|
225+
| Importers | https://github.com/ipfs/specs/pull/57 | https://github.com/ipfs/js-ipfs/issues/41
226+
| repo | https://github.com/ipfs/specs/tree/master/repo | https://github.com/ipfs/js-ipfs/issues/51
62227
| network layer | https://github.com/ipfs/specs/tree/master/libp2p | https://github.com/diasdavid/js-libp2p/issues
63-
| bitswap | https://github.com/ipfs/js-ipfs/issues/51 | https://github.com/ipfs/js-ipfs/issues/51
64-
| pin | | https://github.com/ipfs/js-ipfs/issues/59
65-
| files | | https://github.com/ipfs/js-ipfs/issues/60
66-
| daemon | | https://github.com/ipfs/js-ipfs/issues/57
67-
| object | | https://github.com/ipfs/js-ipfs/issues/58
68-
| block | | https://github.com/ipfs/js-ipfs/issues/50
69-
| bootstrap | | https://github.com/ipfs/js-ipfs/issues/46
70-
| init | | https://github.com/ipfs/js-ipfs/issues/42
228+
| bitswap | https://github.com/ipfs/js-ipfs/issues/51 | https://github.com/ipfs/js-ipfs/issues/51
229+
| pin | | https://github.com/ipfs/js-ipfs/issues/59
230+
| files | | https://github.com/ipfs/js-ipfs/issues/60
231+
| daemon | | https://github.com/ipfs/js-ipfs/issues/57
232+
| object | | https://github.com/ipfs/js-ipfs/issues/58
233+
| block | | https://github.com/ipfs/js-ipfs/issues/50
234+
| bootstrap | | https://github.com/ipfs/js-ipfs/issues/46
235+
| init | | https://github.com/ipfs/js-ipfs/issues/42
71236

72237
### Per feature view
73238

@@ -115,7 +280,7 @@ UPDATE:
115280
- [ ] restart
116281
- [ ] files
117282
- [x] add
118-
- [ ] cat
283+
- [x] cat
119284
- [ ] get
120285
- [ ] stat - Statistics about everything
121286
- [ ] bw

0 commit comments

Comments
 (0)