State of IPLD, 2021

- a quick overview

- the latest news

- ...with pictures!

The

Quick Recap

  • The Data Model
    • Codecs
    • Traversal
    • Philosophically: Legibility and Generic Transforms
  • More cool stuff
    • Data Structures (sharding, encryption?, ADLs)
    • Schemas (design languages!)
    • Programmatic Transforms...?

goals

(much briefer)

but first

building the next git...

should take hours, not days.

overall,

Quick Recap: Wtf is a codec?

  • A codec is a function that goes from
       {serial bytes} -> {IPLD Data Model}
     
  • Or the other way around.






    .... okay so wtf is a data model

Quick Recap: "legibility" and
the Data Model

  • map, list, int, string, bool, bytes, link
  • okay, fine, float, but i don't want to talk about it
  • it's enough to path over it

Quick Recap: Traversal

So you can probably see how this pretty much falls out of the "legibility" thing.

{"foo":{"bar":{"baz":42}}}

traversal.Get(that, "foo/bar/baz")

-> 42

"more cool stuff"

 

  • Selectors (graph walks, declaratively)
  • Data Structures (sharding, encryption?, ADLs)
  • Schemas (design languages!)
  • Programmatic Transforms...?

(We're gonna have to go over these sofast)

Cool stuff: Selectors

if you can step, you can walk

+

->

Cool stuff: ADLs

  • what if something implemented "Node"...
  • but all the functions for a "map"...
  • actually looked up more blocks,
    used a sharding function to nav a tree,
    and did cool stuff?

    Yeah hi that's ADLs.  Plugins where
    the result acts like Data Model.

    (Select over it...  you know want to...)

Cool stuff: Schemas

  • i'm gonna straight up return EAGAIN
    on this for time constraint reasons

  • check out the specs and docs site,
    or ask me for another session on this

  • they're selfhosting and selfdescribing
    and frankly kinda neet

  • structural typing on top of the DM

Cool stuff: Programmatic Transforms

  • Shallow end: "IPLD Patch"?
    (not today, maybe soon)
     
  • Deep end: whole interpreter
    and environment?

Sure why not

Hold on for more news throughout the week,
I've heard...

New things!  A "printf debug" format

...okay you'll see this in a few slides,
where it appears in docs.

New things!  Data driven test fixtures

  • Bullet One
  • Bullet Two
  • Bullet Three
  •  

New things!  Golang 'bindnode' feature

  • Bullet One
  • Bullet Two
  • Bullet Three
  •  

Docs

docsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocsdocs

Docs

(You may want to ignore the front page.)

Don't be distracted by the blockchain logos.

IPLD is about a lot more than blockchains.

 

 

To get an overview of scope, jump t to the first page of docs, then:
check out the TOC ->

Docs

Example contents:

  • "The Brief Primer" (recommended reading!)
  • Data Model Specs
  • "Getting Things Done" guides
  • Specs for our most key codecs
  • Specs for CAR format
  • Specs for Selectors system
  • AdvancedDataLayout APIs
  • Schema Specs
  • Design Concepts
  • and more!

Docs

New!  We're now seeing the new print debug format in docs as explainers:

Docs

New!  We have executable docs and specs now:

Where to contribute??!

tests, fixtures, specs, design...
-> github.com/ipld/ipld

 

golang...
-> github.com/ipld/go-ipld-prime

js...
-> honestly, idk

spørsmål?

(ok, smol surprise)

we uh, have a starlark interpreter binding now

IPLD quicksup 2021

By warpfork

IPLD quicksup 2021

What's up and what's fresh in IPLD in 2021. There's a little intro review, but mostly it's pictures of the latest hotness stuff.

  • 250