/ipld

InterPlanetary Linked Data

OtherNOASSERTION

IPLD

InterPlanetary Linked Data

Note that, as in many IPFS repositories, most of the work is happening in the issues or in active pull requests. Go take a look!

IPLD Definitions

There are a variety of systems that use merkle-tree and hash-chain inspired datastructures (e.g. git, bittorrent, IPFS, tahoe-lafs, sfsro). IPLD defines:

  • merkle-links: the core unit of a merkle-graph
  • merkle-dag: any graphs whose edges are merkle-links.
  • merkle-paths: unix-style paths for traversing merkle-dags with named merkle-links
  • IPLD Data Model: a flexible, JSON-based data model for representing merkle-dags.
  • IPLD Serialized Formats: a set of formats in which IPLD objects can be represented, for example JSON, CBOR, CSON, YAML, Protobuf, XML, RDF, etc.
  • IPLD Canonical Format: a deterministic description on a serialized format that ensures the same logical object is always serialized to the exact same sequence of bits. This is critical for merkle-linking, and all cryptographic applications.

In short: JSON documents with named merkle-links that can be traversed.

Table of Contents

Repositories

IPLD is a multifaceted, distributed effort.

Specifications

  • specs - The specifications for IPLD
  • cid - Self-describing content-addressed identifiers for distributed systems

Implementations

IPLD has multiple types of implementations, some of which have been written in multiple languages.

Data format descriptions

Interface definitions

  • interface-ipld-format - A interface you can follow to implement a valid IPLD format, resolvable through the IPLD Resolver (available in IPFS)

Path Resolution

Other repositories

New implementations

Are you working on your own implementation in another language? Open an issue in this repository to discuss it with others, find help, and coordinate efforts. Eventually, we can move it to the organization if you like, add it above, and mention it on the website.

Other Tools

Meta repos

  • ipld - This repo, which is now self-describing.
  • website - The official website for IPLD, at ipld.io

Lead

Contribute

Please contribute! Look at the issues!

Check out our contributing document for more information on how we work, and about contributing in general. Please be aware that all interactions related to IPLD are subject to the IPFS Code of Conduct.

Small note: If editing the README, please conform to the standard-readme specification.

License

This repository is mainly documents. All of these are licensed under a CC-BY-SA 3.0 license, © 2016 Protocol Labs Inc.