{"id":20850598,"url":"https://github.com/multiformats/multiformats","last_synced_at":"2025-07-24T00:40:19.175Z","repository":{"id":50597365,"uuid":"63683520","full_name":"multiformats/multiformats","owner":"multiformats","description":"The main repository for discussing multiformats.","archived":false,"fork":false,"pushed_at":"2024-02-12T09:33:38.000Z","size":3930,"stargazers_count":559,"open_issues_count":18,"forks_count":66,"subscribers_count":58,"default_branch":"master","last_synced_at":"2025-01-19T06:11:54.232Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://multiformats.io","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/multiformats.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-07-19T10:11:20.000Z","updated_at":"2024-12-31T19:29:27.000Z","dependencies_parsed_at":"2022-08-25T10:50:37.133Z","dependency_job_id":"eebb6a28-9ff9-48a6-8350-73dccfec21bd","html_url":"https://github.com/multiformats/multiformats","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiformats%2Fmultiformats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiformats%2Fmultiformats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiformats%2Fmultiformats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/multiformats%2Fmultiformats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/multiformats","download_url":"https://codeload.github.com/multiformats/multiformats/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243216238,"owners_count":20255340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T03:10:30.843Z","updated_at":"2025-03-12T12:26:06.093Z","avatar_url":"https://github.com/multiformats.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# multiformats\n\n[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io)\n[![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats)\n[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs)\n[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)\n\n\u003e The main repository for discussing multiformats\n\nMultiformats is a set of self-describing protocol values. \nThese values are foundational in that they are low-level building blocks for both data and network layers of the composable protocols making up IPFS, IPLD, libp2p, and many other decentralized data systems. \nThis repository's issues and pull requests are currently the primary venue for the coordination between the various registries making up the group, each of which is separately being hardened as specifications and public, formal registries over time.  \nSee [contributing.md](./contributing.md) for more details on governance and process.\n\n## Current Registries\n\nCurrently, we have the following formats, each of which corresponds to a specification and a registry. \nMore formats are being discussed and may be added over time, but the following are the mature ones to date:\n\n| Repo | Status | Specification |\n| ---- | --- | --- |\n| [multiaddr](https://github.com/multiformats/multiaddr)   | stable | TBD |\n| [multibase](https://github.com/multiformats/multibase)   | stable | [W3C CCG](https://github.com/w3c-ccg/multibase) |\n| [multicodec](https://github.com/multiformats/multicodec) | stable | TBD |\n| [multihash](https://github.com/multiformats/multihash)   | stable | [W3C CCG](https://github.com/w3c-ccg/multihash)  |\n\nSee the project directory, below, for implementations and other related repositories.\n\n![](img/multiformats.001.jpg)\n![](img/multiformats.002.jpg)\n\n## Table of Contents\n\n- [Current Registries](#current-registries)\n- [Table of Contents](#table-of-contents)\n- [Background](#background)\n  - [A note on the word Multiformats](#a-note-on-the-word-multiformats)\n- [Project Directory](#project-directory)\n  - [Implementations](#implementations)\n- [Maintainers](#maintainers)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Background\n\nEvery choice in computing has a tradeoff. \nThis includes formats, algorithms, encodings, and so on. \nAnd even with a great deal of planning, decisions may lead to breaking changes down the road, or to solutions which are no longer optimal. \nAllowing systems to evolve and grow is important.\n\nMultiformats is a collection of protocols which aim to future-proof systems, today. \nThey do this mainly by allowing data to be self-describable. \nThis allows interoperability, protocol agility, and helps us avoid various forms of lock-in.\nCurrently, these interlocking protocols (both works in progress and implemented) cover the following areas:\n\n- [multiaddr](https://github.com/multiformats/multiaddr): network addresses\n- [multibase](https://github.com/multiformats/multibase): base encodings\n- [multicodec](https://github.com/multiformats/multicodec): serialization codes\n- [multihash](https://github.com/multiformats/multihash): cryptographic hashes\n- [multikey](https://github.com/ipfs/specs/issues/58): cryptographic keys and artifacts\n\nSeveral of the multiformats are stable, and work on the others is ongoing.\nImplementers and refiners of the drafts of any one of these registries or their tooling are welcome to [contribute](./contributing.md), without needing to understand deeply or track progress on the others. \nAcross these otherwise different use-cases and mechanisms, the self-describing aspects of the protocols have a few design goals in common:\n\n- the \"prefixes\" use to self-describe a value must be inline with the value (not passed out-of-band, in function calls, implicit choices, or documentation);\n- they must be compact and have a binary-packed representation (as opposed to a sparser encoding) or they will hinder performance;\n- they must have a human-readable representation.\n\n### A note on the word Multiformats\n\n`Multiformats` is the name for the community (and the \"organization\" in GitHub's access control model), but `multiformats` can also be used to refer to protocols; for instance, in the sentence \"Use one of the multiformats\". \nFormats is interchangeable with protocols, here, as each format is designed in tandem with one or more protocols which handle those self-describing values centrally. \nWe try to capitalize Multiformats when it refers to the organization.\n\n## Project Directory\n\nBelow, a list of all of the projects in the Multiformats organization is listed.\n\n**Maintainers** are the active leads for each project, even if the specification is still under construction. \nTheir responsibilities are to make sure that issues and pull requests are attended to in a timely manner, and general upkeep. \nIf you have questions about a repository, or need feedback, please contact them as appropriate. \nIf any of the specifications defining these formats are formalized in a standards body, these maintainers may continue on as Registrars of the table of entries which can keep growing after stabilizing the syntax and tooling interfaces.\n\n### Implementations\n\nThere are no official or maintained implementations of the entire set of multiformats specifications and registries.\nThe readme file of each multiformat specification repository includes a list of known implementations, some of which are hosted in this GitHub organization.\n\n## Maintainers\n\nMaintainers of the each multiformats specification are listed in the appropriate repositories. \nThe external standardization of multiformats specifications and registries is currently managed and coordinated by [@bumblefudge](https://github.com/bumblefudge) of [learningProof UG](https://learningproof.xyz).\n\n## Contribute\n\nCheck out our [contributing document](contributing.md) for more information on how we work, and about contributing in general.\n\n## License\n\nThis repository is only for documents. \nAll of these are licensed under the [CC-BY-SA 3.0](https://ipfs.io/ipfs/QmVreNvKsQmQZ83T86cWSjPu2vR3yZHGPm5jnxFuunEB9u) license © 2016 Protocol Labs Inc. Any code is under a [MIT](LICENSE) © 2016 Protocol Labs Inc.\n\n[Code of Conduct]: https://github.com/ipfs/community/blob/master/code-of-conduct.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiformats%2Fmultiformats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmultiformats%2Fmultiformats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiformats%2Fmultiformats/lists"}