-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Proposal: Move CLI & HTTP API + HTTP Gateway to a separate repo (aka IPFS Daemon) #2678
Comments
I’m +1 on this for many reasons, but maybe not the same things you’re trying to solve? |
As someone who is only using the core api directly in browsers this makes a lot of sense 👍 |
The development of the Daemon, the HTTP API and the CLI in parallel to the JS Core Implementation in JS was done in the early days so that we could use the same tests that go-ipfs has to test the JS Core implementation robustness. We have exhausted that benefit a long time ago and nowadays it seems that doing all of it in the same pot is mostly a distraction. Separating them will put the JS Daemon (HTTP API + CLI) in the back burner, focusing our attention on the Core implementation (which has the primary goal of being a full and 100% working implementation of the protocol, as highlighted at https://js.ipfs.io) |
Great! I need this for implementing IPFS CLI in the browser using JQuery Terminal. I had to hack it to where I am today and learn way too much about webpack at the same time to get it working. (I'm not a fan. 😢) I suspect the same for reusing the HTTP API for folks wanting to use in the browser (or extension) with LibP2P instead of HTTP while largely keeping the same code. It's hard to communicate how much of a huge boon it'd be for us front-end folks for this tiny amount of effort from the back-end! There's many useful features packed into IPFS Core and these interfaces (CLI and HTTPish) are a huge help to get started fast in the browser while we're building up our pretty UI's! |
Decomposes the main ipfs module into separate core, http api server and cli modules which encapsulate the different parts of ipfs. This allows us to: 1. Omit modules/code/depencies if they aren't going to be used 2. Reduces the amount of tests being run in series I'm hoping this will get us to sub-15 minute builds. Fixes #2678 Fixes #2877
Decomposes the main ipfs module into separate core, http api server and cli modules which encapsulate the different parts of ipfs. This allows us to: 1. Omit modules/code/dependencies if they aren't going to be used 2. Reduces the amount of tests being run in series The average time of a CI job has gone from just under 20 minutes to just over 10 minutes. Outliers here are electron tests (which should be fixed by #3251) and webworker tests which will need further investigation. Fixes #2678 Fixes #2877
Decomposes the main ipfs module into separate core, http api server and cli modules which encapsulate the different parts of ipfs. This allows us to: 1. Omit modules/code/dependencies if they aren't going to be used 2. Reduces the amount of tests being run in series The average time of a CI job has gone from just under 20 minutes to just over 10 minutes. Outliers here are electron tests (which should be fixed by #3251) and webworker tests which will need further investigation. Fixes #2678 Fixes #2877
With this issue, what I'm effectively proposing is to give a Secondary role to the Daemon Implementation in JavaScript. The goal being to focus on the Core Implementation, it's API and it's robustness.
Discuss :)
The text was updated successfully, but these errors were encountered: