diff --git a/content/index.md b/content/index.md index 21e98fb..260f9bf 100644 --- a/content/index.md +++ b/content/index.md @@ -3,12 +3,14 @@ base_url = "/" title = "Multiformats" stars = "multiformats/multiformats" +++ -> ## Self-describing values for Future-proofing +> ## 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?](#what-are-multiformats) +- [Why organizations choose Multiformats](#why-organizations-choose-multiformats) - [Multiformat protocols](#multiformat-protocols) +- [A growing protocol registry](#a-growing-protocol-registry) - [Projects using Multiformats](#projects-using-multiformats) - [Contribute & Community](#contribute--community) @@ -23,6 +25,27 @@ The self-describing aspects of the protocols have a few stipulations: - They MUST be compact and have a _binary-packed_ representation. - They MUST have a _human-readable_ representation. +## Why organizations choose Multiformats + +
+
+

Extensible forever

+

No central redesign when new formats appear.

+
+
+

Self-describing

+

Identifiers explain themselves.

+
+
+

Language independent

+

One shared registry across Go, Rust, JavaScript, Python, Java, Swift, Kotlin, and more.

+
+
+

Interoperable

+

Organizations extend one ecosystem rather than creating incompatible formats.

+
+
+ ## Multiformat protocols @@ -46,7 +69,7 @@ Also, some protocols are deprecated or frozen: ### 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. +Several of the multiformats have stable specs and stable implementations. We 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. @@ -55,9 +78,58 @@ Towards that end, we are encouraging improvements to WIP protocols, and implemen 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. +## A growing protocol registry + +
+

Multicodec is a shared registry for describing content types, hash functions, keys, signatures, namespaces, transports, and experimental formats. New systems can add a code once, then use it everywhere Multiformats are understood.

+
+
460+registered multicodecs
+
80+organizations
+
30+languages
+
100+implementations
+
Thousandsof downstream repositories
+
+

Register your multicodec Submit a pull request to reserve a code in the public registry.

+
+ ## Projects using Multiformats -The Multiformats project began through [the IPFS Project](https://ipfs.io). It is used extensively in projects like +The Multiformats project began through [the IPFS Project](https://ipfs.io). It now supports a wider ecosystem of storage, networking, identity, cryptography, AI, and research projects. Examples below are direct Multiformats users or protocols represented in the public Multicodec registry. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EcosystemExamples
StorageIPFS, Filecoin, Ceramic, Arweave, IPLD, and UnixFS.
Networkinglibp2p multiaddrs and peer IDs, Ethereum block/transaction codecs and signature identifiers, and Bitcoin block, transaction, and witness commitment codecs.
IdentityENS contenthash records, did:key, Multibase/MultiKey identifiers, and Multidid.
CryptographyHash function implementers and key registrants including BLAKE3, SHA-2, SHA-3, SHAKE, Keccak, BLAKE2, KangarooTwelve, Poseidon, Skein, Murmur3, XXH, Ed25519, secp256k1, BLS12-381, ML-KEM, ML-DSA, and SLH-DSA families.
AIIPFS Datasets, IPFS Kit, and agent-cid use CIDs and Multiformats for datasets, vector stores, model distribution, and agent artifacts. Vector formats such as FAISS, HNSW, and Lance, plus model serialization formats such as SafeTensors, GGUF, and ONNX, are natural candidates when they need self-describing registry codes.
ResearchExperimental and emerging codecs including RDFC-1, JSON-JCS, SSZ, ISCC, Holochain addresses, Shelter protocol artifacts, Massa namespaces, Subspace namespaces, Skynet namespaces, and SCION multiaddrs.
@@ -92,4 +164,4 @@ The Multiformats project began through [the IPFS Project](https://ipfs.io). It i - [Website Repository](https://github.com/multiformats/website) - [Matrix chatroom](https://matrix.to/#/#multiformats:ipfs.io) (`#multiformats:ipfs.io`) - [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md) -- [Contributing Guide](https://github.com/multiformats/multiformats/blob/master/contributing.md) \ No newline at end of file +- [Contributing Guide](https://github.com/multiformats/multiformats/blob/master/contributing.md) diff --git a/layouts/less/main.less b/layouts/less/main.less index 7135ac7..52eb399 100644 --- a/layouts/less/main.less +++ b/layouts/less/main.less @@ -296,6 +296,114 @@ hr { margin: 5px; vertical-align: middle; } + +.card-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); + grid-gap: 14px; + margin: 20px 0 30px; +} + +.outcome-card, +.metric-card { + background: #f8f8f8; + border-left: 5px solid #65ac39; + padding: 16px; +} + +.outcome-card h3 { + font-size: 20px; + line-height: 28px; + margin-bottom: 8px; +} + +.outcome-card p { + margin-bottom: 0; +} + +.registry-callout { + background: #f8f8f8; + border-left: 5px solid #65ac39; + margin: 20px 0 30px; + padding: 20px; +} + +.metric-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + grid-gap: 10px; + margin: 16px 0 20px; +} + +.metric-card { + background: #ffffff; + border-left-color: #1d74f2; +} + +.metric-card strong, +.metric-card span { + display: block; +} + +.metric-card strong { + color: #000000; + font-family: "Open Sans", sans-serif; + font-size: 28px; + line-height: 34px; +} + +.metric-card span { + color: #5A626E; + font-size: 14px; + line-height: 20px; +} + +.registry-cta { + margin-bottom: 0; +} + +.cta-button { + background: #65ac39; + color: #ffffff; + display: inline-block; + font-weight: 600; + margin: 0 10px 8px 0; + padding: 8px 14px; + text-decoration: none; +} + +.cta-button:hover, +.cta-button:focus, +.cta-button:active { + color: #ffffff; + background: #579630; + text-decoration: none; +} + +.ecosystem-table { + border-collapse: collapse; + margin: 20px 0 30px; + width: 100%; +} + +.ecosystem-table th, +.ecosystem-table td { + border-top: 1px solid #ddd; + padding: 12px; + text-align: left; + vertical-align: top; +} + +.ecosystem-table thead th { + background: #f8f8f8; + color: #000000; + font-family: "Open Sans", sans-serif; +} + +.ecosystem-table tbody th { + color: #000000; + white-space: nowrap; +} .about-logos > div { font-size: 24px; vertical-align: middle;