{"id":13483337,"url":"https://github.com/ipfs/specs","last_synced_at":"2025-04-10T09:51:32.528Z","repository":{"id":28506573,"uuid":"32023078","full_name":"ipfs/specs","owner":"ipfs","description":"Technical specifications for the IPFS protocol stack","archived":false,"fork":false,"pushed_at":"2025-04-09T09:11:00.000Z","size":14975,"stargazers_count":1189,"open_issues_count":128,"forks_count":234,"subscribers_count":107,"default_branch":"main","last_synced_at":"2025-04-09T16:20:35.983Z","etag":null,"topics":["ipfs","p2p","protocol","specifications","specs","standards"],"latest_commit_sha":null,"homepage":"https://specs.ipfs.tech","language":"HTML","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/ipfs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-11T14:47:16.000Z","updated_at":"2025-04-09T13:52:03.000Z","dependencies_parsed_at":"2022-07-12T16:09:21.720Z","dependency_job_id":"e24d714d-118b-4bc9-943e-b9327eeedace","html_url":"https://github.com/ipfs/specs","commit_stats":{"total_commits":741,"total_committers":93,"mean_commits":7.967741935483871,"dds":0.7624831309041835,"last_synced_commit":"fde8ec5d192fa3b62e81196d8fa0e3c4e48f3fcd"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fspecs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fspecs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fspecs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipfs%2Fspecs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ipfs","download_url":"https://codeload.github.com/ipfs/specs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248094991,"owners_count":21046770,"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":["ipfs","p2p","protocol","specifications","specs","standards"],"created_at":"2024-07-31T17:01:10.231Z","updated_at":"2025-04-10T09:51:32.489Z","avatar_url":"https://github.com/ipfs.png","language":"HTML","readme":"# IPFS Specifications\n\n\u003e This repository contains the specs for the IPFS Protocol and associated subsystems.\n\n- [Documentation and Community](#documentation-and-community)\n- [Understanding badges](#understanding-the-meaning-of-the-spec-badges-and-their-lifecycle)\n- [Index](#index)\n- [Contribute](#contribute)\n  - [InterPlanetary Improvement Process (IPIP)](#interplanetary-improvement-process-ipip)\n\n## Documentation and Community\n\nLooking for user support?\n\nSee [Documentation](https://docs.ipfs.io),\n[Discussion Forums](https://discuss.ipfs.io/), and other\n[Community Resources](https://docs.ipfs.io/community/) instead.\n\n## Understanding the meaning of the spec badges and their lifecycle\n\nWe use the following label system to identify the state of each spec:\n\n- ![wip](https://img.shields.io/badge/status-wip-orange.svg?style=flat-square) - A work-in-progress, possibly to describe an idea before actually committing to a full draft of the spec.\n- ![draft](https://img.shields.io/badge/status-draft-yellow.svg?style=flat-square) - A draft that is ready to review. It should be implementable.\n- ![reliable](https://img.shields.io/badge/status-reliable-green.svg?style=flat-square) - A spec that has been adopted (implemented) and can be used as a reference point to learn how the system works.\n- ![stable](https://img.shields.io/badge/status-stable-brightgreen.svg?style=flat-square) - We consider this spec to close to final, it might be improved but the system it specifies should not change fundamentally.\n- ![permanent](https://img.shields.io/badge/status-permanent-blue.svg?style=flat-square) - This spec will not change.\n- ![deprecated](https://img.shields.io/badge/status-deprecated-red.svg?style=flat-square) - This spec is no longer in use.\n\nNothing in this spec repository is `permanent` or even `stable` yet. Most of the subsystems are still a `draft` or in `reliable` state.\n\n## Index\n\nThe specs contained in this and related repositories are:\n\n- **IPFS Protocol:**\n  - [IPFS Guide](https://docs.ipfs.tech/) - to start your IPFS journey\n  - [Protocol Architecture Overview](./ARCHITECTURE.md) - the top-level spec and the stack\n- **User Interface (aka Public APIs):**\n  - [HTTP Gateways](https://specs.ipfs.tech/http-gateways/) - implementation agnostic interfaces for accessing content-addressed data over HTTP\n  - [Routing V1](https://specs.ipfs.tech/routing/http-routing-v1/) - implementation agnostic interfaces for content/peer/IPNS routing over HTTP\n  - IPFS implementations may provide additional HTTP interfaces, for example:\n    - [Kubo RPC at /api/v0](https://docs.ipfs.tech/reference/kubo/rpc/)\n- **Data Formats:**\n  - [IPLD](https://ipld.io/specs/) - InterPlanetary Linked Data.\n    - [DAG-CBOR](https://ipld.io/docs/codecs/known/dag-cbor/) -  binary format, supporting the complete IPLD Data Model, with excellent performance, and suitable for any job.\n    - [DAG-JSON](https://ipld.io/docs/codecs/known/dag-json/) - human-readable format, supporting almost the complete IPLD Data Model, and very convenient for interoperability, development, and debugging.\n    - [DAG-PB](https://ipld.io/docs/codecs/known/dag-pb/) - a binary format for specific limited structures of data, which is highly used in IPFS and [UnixFS](./UNIXFS.md).\n    - [CAR](https://ipld.io/specs/transport/car/) - transport format used to store content addressable objects in the form of IPLD block data as a sequence of bytes; typically as an [application/vnd.ipld.car](https://www.iana.org/assignments/media-types/application/vnd.ipld.car) file with a `.car` extension\n  - Self Describing Formats ([multiformats](http://github.com/multiformats/multiformats)):\n    - [multihash](https://github.com/multiformats/multihash) - self-describing hash digest format.\n    - [multiaddr](https://github.com/multiformats/multiaddr) - self-describing addressing format.\n    - [multicodec](https://github.com/multiformats/multicodec) - self-describing protocol/encoding streams (note: a file is a stream).\n    - [multistream](https://github.com/multiformats/multistream) - multistream is a format -- or simple protocol -- for disambiguating, and layering streams. It is extremely simple.\n- **Files and Directories:**\n  - [UnixFS](./UNIXFS.md)\n  - Related userland concepts (external docs):\n    - [MFS, Mutable File System, or the Files API](https://docs.ipfs.tech/concepts/file-systems/#mutable-file-system-mfs)\n- **Storage Layer:**\n  - [Pinning Service API](https://ipfs.github.io/pinning-services-api-spec/)\n  - [Repo](./REPO.md) - IPFS node local repository spec\n    - [FileSystem Repo](./REPO_FS.md) - IPFS node local repository spec\n- **Block Exchanges:**\n  - [Bitswap](./BITSWAP.md) - BitTorrent-inspired exchange\n- **Key Management:**\n  - [KeyStore](./KEYSTORE.md) - Key management on IPFS\n  - [KeyChain](./KEYCHAIN.md) - Distribution of cryptographic Artifacts\n- **Networking layer:**\n  - [libp2p](https://github.com/libp2p/specs) - libp2p is a modular and extensible network stack, built and use by IPFS, but that it can be reused as a standalone project. Covers:\n- **Records, Naming and Record Systems:**\n  - [IPNS](https://specs.ipfs.tech/ipns/) - InterPlanetary Naming System\n    - [IPNS Record Creation and Verification](https://specs.ipfs.tech/ipns/ipns-pubsub-router/)\n    - [IPNS over PubSub](https://specs.ipfs.tech/ipns/ipns-pubsub-router/)\n  - [DNSLink](https://dnslink.dev) - mapping DNS names to IPFS content paths\n  - [DNSAddr](https://github.com/multiformats/multiaddr/blob/master/protocols/DNSADDR.md) - mapping DNS names to libp2p multiaddrs\n- **Other/related/included:**\n  - [PDD](https://github.com/ipfs/pdd) - Protocol Driven Development\n\n## Contribute\n\n[![contribute](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)\n\nSuggestions, contributions, criticisms are welcome. Though please make sure to familiarize yourself deeply with IPFS, the models it adopts, and the principles it follows.\nThis repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).\n\n### InterPlanetary Improvement Process (IPIP)\n\n- Want to propose a change to an existing specification?\n- Or add a new protocol?\n\nSee:\n- [IPIP: Improvement Process for IPFS Specifications](https://specs.ipfs.tech/meta/ipip-process/)\n  - List of [ratified IPIPs](https://specs.ipfs.tech/ipips/)\n  - List of [open IPIPs](https://github.com/ipfs/specs/pulls?q=is%3Apr+is%3Aopen+ipip+sort%3Aupdated-desc)\n","funding_links":[],"categories":["Projects and Applications","HTML","Others","Libraries","ipfs"],"sub_categories":["IPFS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipfs%2Fspecs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipfs%2Fspecs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipfs%2Fspecs/lists"}