IPLD Specifications

Within these directories, we describe the IPLD specifications.

The specifications are fairly dry and formal; you can find alternative versions of this information that's friendlier to reading in the docs directories.

Test fixture data may also be found in some subdirectories herein.

About the Specifications - A quick overview of specs vs docs, how we approach specs, what to expect here, how to improve it, etc.
Codecs - Codecs are functions that get serial data into IPLD and turn IPLD back into serial data. Here you'll find detailed specifications and fixtures for a number of codecs.
Advanced Data Layouts - Advanced Data Layouts are lenses applied to data in IPLD to empower data, and are used for features like sharding. Specifications and fixtures for some well known ADLs are found here.
Schemas - Schemas are a technology for designing protocols, pattern matching, and validating data with IPLD. Here you'll find detailed specifications and fixtures for the behavior of IPLD Schemas (include the Schema Schema!).
Transports - Transports are any technology for storage and transfer of collections of IPLD blocks. Here you'll find specifications for many diverse mechanisms, both static and interactive (including CAR files and Graphsync, for example).
Selectors - Selectors are a declarative API for describing walks across IPLD data.
Patch - A declarative Patch system (based on JSON Patch) exists for working with IPLD.