Skip to content

Latest commit

 

History

History
88 lines (61 loc) · 4.36 KB

index.md

File metadata and controls

88 lines (61 loc) · 4.36 KB

+++ title = "Multiformats" stars = "multiformats/multiformats" +++

Self-describing values for Future-proofing

Every choice in computing has a tradeoff. This includes formats, algorithms, encodings, and so on. And even with a great deal of planning, decisions may lead to breaking changes down the road, or to solutions which are no longer optimal. Allowing systems to evolve and grow is important.

What are Multiformats?

The Multiformats Project is a collection of protocols which aim to future-proof systems, today. They do this mainly by enhancing format values with self-description. This allows interoperability, protocol agility, and helps us avoid lock in.

The self-describing aspects of the protocols have a few stipulations:

  • They MUST be in-band (with the value); not out-of-band (in context).
  • They MUST avoid lock-in and promote extensibility.
  • They MUST be compact and have a binary-packed representation.
  • They MUST have a human-readable representation.

Multiformat protocols

Currently, we have the following multiformat protocols:

Each of the projects has its list of implementations in various languages.

Project Status

Several of the multiformats have stable specs and stable implementations. We're are working on the others. We prioritize their usage as soon as possible, as what they offer -- protocol interoperability and future-proofing -- has real-world consequences today.

Towards that end, we are encouraging improvements to WIP protocols, and implementations of all. Please contribute to the projects on Github.

A note on the word Multiformats

Multiformats is the name for the organization, but it can also be used to refer to protocols; for instance, in the sentence "Use one of the multiformats". Formats is interchangeable with protocols, here. We try to capitalize Multiformats when it refers to the organization, on GitHub.

Projects using Multiformats

The Multiformats project began through the IPFS Project. It is used extensively in projects like

  • IPFS - a peer-to-peer hypermedia protocol and distributed file system.
  • libp2p - a modular network library for peer-to-peer protocols.
  • (add yours here)

Contribute & Community

The Multiformats Project is an Open Source software project. It is built by a large community of contributors. Please join us on Github or IRC to request features, file bugs, contribute code, improve documentation, and ask questions. We have a very open and welcoming community.

Multiformats was started and is sponsored by: