ipld / go-ipld-prime

Golang interfaces for the IPLD Data Model, with core Codecs included, IPLD Schemas support, and some handy functional transforms tools.
MIT License
133 stars 50 forks source link

HAMT impression under adl module? #526

Closed delaneyj closed 1 year ago

delaneyj commented 1 year ago

Curious why the current information isn't under the adl repo, similar to json/cbor for encoding

rvagg commented 1 year ago

https://github.com/ipld/go-ipld-adl-hamt & https://github.com/ipfs/go-unixfsnode are two "ADL"s that do HAMT work, the latter for the specific UnixFS sharded directory HAMT, and the former is according to spec (https://ipld.io/specs/advanced-data-layouts/hamt/).

The reason they aren't here is because this isn't intended to be a mega-repo, it's a core piece that things build on, not a place to put everything that anyone comes up with. The ADL concept is intended to provide extensibility in whatever direction people want to come up with, ideally entirely unpermissioned. The only real ADL that's in here is an example one that exists just to show how to extend.

dag-cbor and dag-json are in here kind of as a historical artifact, but also because they're so core to developing this library, we need a serialisation format to be able to test and exercise go-ipld-prime itself, so they're here (dag-json is along for the ride because it uses the refmt library in a near identical way to dag-cbor). You'll note though that dag-pb lives elsewhere even though it's responsible for >95% of the data trafficked through the IPFS network: https://github.com/ipld/go-codec-dagpb, that's the model we're going for here.

I hope that explains it.