multiformats

The main repository for discussing multiformats.

  • Owner: multiformats/multiformats
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

multiformats




The main repository for discussing multiformats

Currently, we have the following formats. More formats are being discussed and worked on., Repo, Captain, Status, IETF, ------, ---------, --------, ------, multiaddr, @lgierth, stable, WIP, multibase, @jbenet, stable, W3C DVCG, multicodec, @jbenet, stable, TODO, multihash, @jbenet, stable, W3C DVCG, multistream, @diasdavid, stable, TODO, multigram, WIP, TODO, multikey, WIP, TODO, See the project directory, below, for implementations and other related repositories.


Table of Contents

Background

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.

Multiformats is a collection of protocols which aim to future-proof systems, today. They do this mainly by allowing data to be self-describable. This allows interoperability, protocol agility, and helps us avoid lock in. Currently, our protocols (both works in progress and implemented) cover the following areas:

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

  • they must be in the value (not passed in out of band, in function calls, implicit choices, or documentation);
  • they must be compact and have a binary-packed representation (as opposed to a sparser encoding) or they will hinder performance;
  • they must have a human readable representation.

Several of the multiformats are stable, and we're working on the others. We are trying to prioritize their usage as soon as possible. What they offer -- protocol interoperability and future-proofing -- would have real-world consequences.

Towards that end, we are encouraging implementations of these protocols; if you know of any, please link them here (or add them to the organization!).

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.

Project Directory

Below, a list of all of the projects in the Multiformats organization is listed.

Captains are the active leads for each project. Their responsibilities are to make sure that issues and pull requests are attended to in a timely manner, and general upkeep. If you have questions about a repository, or need feedback, please contact them as appropriate.

Implementations

As well as specifications, we also have some implementations in the organization

Multiaddr Implementations, Repo, Captain, ------, -------------------, cs-multiaddress, @tabrath, go-multiaddr, @whyrusleeping, go-multiaddr-net, @whyrusleeping, go-multiaddr-dns, @lgierth, java-multiaddr, @ianopolous, js-multiaddr, @diasdavid, rust-multiaddr, @dignifiedquire, SwiftMultiaddr, @NeoTeo, py-multiaddr, #### Multihash Implementations, Repo, Captain, Note, ------, ---------, ------, c-multihash, @Kubuxu, Only parsing and encoding, and not hashing., c-multihashing, @Kubuxu, cs-multihash, @tabrath, clj-multihash, @greglook, ex_multihash, @zabirauf, go-multihash, @Kubuxu, haskell-multihash, @LukeHoersten, java-multihash, @ianopolous, hash-overlay (Java 9), @jamespedwards42, js-multihash, @diasdavid, js-multihashing-async, @dignifiedquire, js-multihashing, @diasdavid, MultiHash.Net (fork), @MCGPPeters, php-multihash, @Fil, ruby-multihash, @kyledrake, rust-multihash, @dignifiedquire, scala-multihash, @parkan, SwiftMultihash, @NeoTeo, #### Multicodec Implementations, Repo, Captain, Note, ------, ---------, ------, clj-multicodec, @greglook, go-multicodec-packed, @whyrusleeping, go-multicodec, @jbenet, js-multicodec, @diasdavid, #### Other Implementations, Repo, Captain, Note, ------, ---------, ------, cs-multibase, @tabrath, go-multibase, @whyrusleeping, go-multigram, @lgierth, go-multistream, @whyrusleeping, java-multibase, @ianopolous, js-multibase, @diasdavid, js-multistream-select, @diasdavid, ### Other Repositories, Repo, Captain, Note, ------, ---------, ------, clj-varint, @ekroon, ma-pipe, @jbenet, multiformats, @RichardLitt, This repository, specs, @nicola, Specification work regarding multihash, multiaddr, and others. WIP., unsigned-varint, @jbenet, unsigned varint in use in multiformat specs. WIP., clj-varint, @ekroon, Simple wrapper around Bazel VarInt code., website, @victorbjelkholm, The multiformats website, ## Maintainers

Contribute

Please contribute! Dive into 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 multiformats are subject to the IPFS Code of Conduct.

If you're interested in proposing a new format (in addition to multihash, multistream, and so on), open an issue in this repository, explaining the name of the format, what it is for, and why you think it should become one of the multiformats. Pointing to any existing implementations would also be great, if there are any. If you want to implement a multiformat in a new language, open an issue in the main repository for the relevant multiformat: for instance, if you want to write rust-multicodec, open an issue in the multiformats/multicodec repository. This will allow others to know that you're working on it, and potentially join in the effort.

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

License

This repository is only for documents. All of these are licensed under the CC-BY-SA 3.0 license © 2016 Protocol Labs Inc. Any code is under a MIT © 2016 Protocol Labs Inc.

Main metrics

Overview
Name With Ownermultiformats/multiformats
Primary Language
Program language (Language Count: 0)
Platform
License:
所有者活动
Created At2016-07-19 10:11:20
Pushed At2025-04-28 16:02:10
Last Commit At2025-04-28 18:02:07
Release Count0
用户参与
Stargazers Count569
Watchers Count55
Fork Count67
Commits Count61
Has Issues Enabled
Issues Count41
Issue Open Count18
Pull Requests Count22
Pull Requests Open Count1
Pull Requests Close Count4
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private