Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat/discussion: use boxo directly instead of kubo? #2465

Closed
SgtPooki opened this issue Apr 24, 2023 · 5 comments
Closed

feat/discussion: use boxo directly instead of kubo? #2465

SgtPooki opened this issue Apr 24, 2023 · 5 comments
Labels
area/experiments Issues related to opt-in features and experiments disabled by default area/updates Issues related to manual and automatic updates area/webui Issues specific to interaction with ipfs-webui kind/discussion Topical discussion; usually not changes to codebase need/author-input Needs input from the original author need/maintainers-input Needs input from the current maintainer(s)

Comments

@SgtPooki
Copy link
Member

should we migrate ipfs-desktop to utilizing boxo instead of kubo? It could make sense to use wails+boxo for ipfs-desktop (i.e. https://github.com/SgtPooki/ipfs-desktop-wails) instead of booting up a kubo daemon as a separate process

@SgtPooki SgtPooki added the need/triage Needs initial labeling and prioritization label Apr 24, 2023
@SgtPooki SgtPooki changed the title feat: use boxo directly instead of kubo? feat/discussion: use boxo directly instead of kubo? Apr 24, 2023
@BigLep
Copy link

BigLep commented Apr 25, 2023

Boxo doesn't have Kubo's RPC layer which ipfs-webui depends on right? I don't know how hard that is to do.

It might be worth getting into the pros/cons of having Kubo as a separate process in Desktop to help motivate this as well. (I'm not up on the specifics here.)

@SgtPooki
Copy link
Member Author

Boxo doesn't have Kubo's RPC layer which ipfs-webui depends on right? I don't know how hard that is to do.

The cool thing about using boxo directly would be that we'd bind js methods directly to the go methods, so we don't need the RPC api. However, i'm not sure whether this would be more or less difficult for ipfs-desktop maintenance. That would depend greatly on wails.

Either way, i looked at the wails roadmap and there seems to be a number of features missing that we should have before switching (if we do).

@lidel
Copy link
Member

lidel commented Apr 25, 2023

Removing electron sounds nice, but the price may be very high.

Some open questions from my end:

  • Would we stub a subset of Kubo RPC somehow, to keep ipfs-webui working, or is the intention to replace ipfs-webui as well?
    • both are heavy lifts, and unlikely be P0-P1 to pull this off any time soon given the resourcing/priorities we have
    • reusing webui and "just stubbing rpc" may not be as easy as it sounds:
      • ipfs-webui uses a significant amount of Kubo RPC commands, including very hairy code like one for remote pins
      • boxo is not "feature complete" -- most likely additional extraction work would be necessary to allow for code reuse. this could be beneficial to boxo and ecosystem, but we need to be aware this is an unknown amount of work.
  • How would autoupdate work?
    • Wails does not seem to have officially supported library for this, and there do not seem to be a canonical, well maintained solution. This means we either use something someone created in one evening, and may stop supporting next month, or have to write our own, preferably on top of IPNS (Hardening Updates with Content-Addressing and IPNS #789).
    • How would we update/migrate existing Electron users that rely on electron-updater and github release?

@whizzzkid
Copy link
Contributor

Regarding auto-update, tauri provides auto-update functionality out of the box.

Is Wails the preferred framework to move forward with? Even though it's written in Go, IMO, desktop should be agnostic to what binary is running in the background, kubo, or parts of boxo. Additionally path should be left open for running other binaries to run experiments like punchrr, etc.

Desktop should eventually evolve into a certified runtime for such projects.

@whizzzkid whizzzkid added kind/discussion Topical discussion; usually not changes to codebase area/webui Issues specific to interaction with ipfs-webui area/updates Issues related to manual and automatic updates area/experiments Issues related to opt-in features and experiments disabled by default need/author-input Needs input from the original author need/maintainers-input Needs input from the current maintainer(s) and removed need/triage Needs initial labeling and prioritization labels Apr 27, 2023
@SgtPooki
Copy link
Member Author

SgtPooki commented Apr 27, 2023

The plan for ipfs-desktop is to tie it directly to kubo, so tauri would align more directly with a rust impl of IPFS. Makes sense that wails+boxo isn't quite where it would need to be for this yet, I just wanted to get this conversation out there. Closing this as there is no clear next steps (and we have enough open issues in this repo as it is), but we can continue to track any convo on this issue if folks wish.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/experiments Issues related to opt-in features and experiments disabled by default area/updates Issues related to manual and automatic updates area/webui Issues specific to interaction with ipfs-webui kind/discussion Topical discussion; usually not changes to codebase need/author-input Needs input from the original author need/maintainers-input Needs input from the current maintainer(s)
Projects
No open projects
Status: Done
Development

No branches or pull requests

4 participants