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

Proposal: Move CLI & HTTP API + HTTP Gateway to a separate repo (aka IPFS Daemon) #2678

Closed
daviddias opened this issue Dec 16, 2019 · 4 comments · Fixed by #3288
Closed

Proposal: Move CLI & HTTP API + HTTP Gateway to a separate repo (aka IPFS Daemon) #2678

daviddias opened this issue Dec 16, 2019 · 4 comments · Fixed by #3288

Comments

@daviddias
Copy link
Member

daviddias commented Dec 16, 2019

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 :)

@alanshaw
Copy link
Member

I’m +1 on this for many reasons, but maybe not the same things you’re trying to solve?

@oed
Copy link
Contributor

oed commented Jan 6, 2020

As someone who is only using the core api directly in browsers this makes a lot of sense 👍

@daviddias
Copy link
Member Author

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)

@SahidMiller
Copy link

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!

achingbrain added a commit that referenced this issue Sep 15, 2020
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
achingbrain added a commit that referenced this issue Sep 28, 2020
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
SgtPooki referenced this issue in ipfs/js-kubo-rpc-client Aug 18, 2022
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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants