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.
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:
The Multiformats Project describes a series of protocols. Currently, the following protocols exist:
Each of the projects has its list of implementations in various languages.
Also, some protocols are deprecated or frozen:
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.
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.
The Multiformats project began through the IPFS Project. It is used extensively in projects like
The Multiformats Project is an Open Source software project. It is built by a large community of contributors. Please join us on GitHub or Matrix to request features, file bugs, contribute code, improve documentation, and ask questions. We have a very open and welcoming community.