Road to a unixfs-like in golang with ADLs #258
Labels
effort/weeks
Estimated to take multiple weeks
exp/expert
Having worked on the specific codebase is important
kind/architecture
Core architecture of project
kind/enhancement
A net-new feature or improvement to an existing feature
kind/tracking
A meta-issue for tracking work
P1
High: Likely tackled by core team if no one steps up
This issue is a short checklist/roadmap for the major areas of work needed in order to make something "unixfs-like" happen in golang and be implemented almost entirely in ADLs.
What?
"unixfs-like"
By "unixfs-like", I mean both of: we can reimplement a feature-parity unixfsv1 (like what go-ipfs does) this way; and we would also reuse the majority of these code and components in building a "unixfsv2"; and most importantly, someone else could grab most of the components we'll need here and build their own custom evolution of what they consider a "unixfs-like" with minimal hurdles.
"implemented as ADLs"
By "implemented almost entirely in ADLs" I mean: there should be a few pieces of code which implement key functionality by making complex structures act "like a
map
-kind node" and "like abytes
-kind node". So: directories? Map. Files? Bytes. Even though either of them can be sharded? Yep. And that should, when composed, make a unixfs-like system almost trivial to assemble.The desirable outcomes of this are two (or three): one, it means things like pathing and traversals and selectors over them are already defined (because it's just "working over a map", etc); two, it's a very clear abstraction which allows for reuse when someone wants to make a new system. (Also, three, in the longer run -- we hope to make ADLs into a language-agnostic plugin system. But that is not today :) Today we are happy to implement it in one language, get something working, and plan to move on later.)
other sells
It's been suggested that we could significantly improve UX in other systems like the IPFS Gateways and their rendering of data by having this work done -- and make it so much easier to do that it becomes more likely for those improvements to actually get done. When unixfs systems (including unixfsv1 as a retrofit) are available as ADLs, it means we can build more consistent and reusable rendering technologies with a lot less code, less special cases, less complexity to explain, etc.
Roadmap
Without further ado, some checkboxes...
NodeBuilder
/NodeAssembler
)Node
)Not all of this work has to take place in this repo, and several parts of it can be started without blocking on other parts. It also doesn't all have to be done by the same people. This is just a tracking and roadmap-sharing issue.
The text was updated successfully, but these errors were encountered: