# IPFS repository guide
IPFS is a big open-source project, and with that comes a lot of code — and a lot of issue-based discussion that goes with it. The IPFS project uses GitHub both for code development and for road mapping and operations discussions, meaning that both types of activities can happen asynchronously, in the open, and from anywhere on the planet.
If you're looking for specific IPFS-related code, or want to find where to join in a particular discussion, start with this high-level guide to the most prominent and/or frequently used GitHub organizations and repositories in the IPFS project. It's not an exhaustive list of all IPFS organizations and repositories, but instead is intended to help guide you based on what you are trying to do in the following areas:
- Fetching or contributing to IPFS code
- Participating in IPFS project operations
- Discussing ideas for using IPFS
# Fetch or contribute to IPFS code
Organization and repository links for the top-level projects shipped as part of the IPFS project and the main repos for each ingredient in the stack upon which IPFS is built.
# Protocol implementations
- go-ipfs (opens new window): The reference implementation written in Go.
- js-ipfs (opens new window): The JavaScript implementation of IPFS.
- rust-ipfs (opens new window): Alpha implementation in Rust.
- Other implementations (opens new window): Up-to-date links to all other protocol implementations.
# Client implementations
- Current list (opens new window) of HTTP client libraries.
# Underlying components
- libp2p (opens new window):
- go-libp2p (opens new window): Reference libp2p implementation in Go.
- js-libp2p (opens new window): The JavaScript implementation of the libp2p networking stack.
- rust-libp2p (opens new window): The Rust implementation of the libp2p networking stack.
- IPLD (opens new window):
- go-ipld (opens new window): Entry-point repo for Go IPLD development.
- js-ipld (opens new window): The JavaScript Implementation of IPLD.
- IPLD specifications (opens new window): The set of specifications that make up IPLD.
- Multiformats (opens new window):
- Multiaddr (opens new window): Composable and future-proof network addresses.
- Multibase (opens new window): Self-identifying base encodings.
- Multicodec (opens new window): Compact, self-describing codecs.
- Multihash (opens new window): Self-describing hashes for future-proofing.
# IPFS tools and products
- IPFS Cluster (opens new window): Automatically allocate, replicate, and track your data as a global pinset distributed among a swarm of peers.
- IPFS Companion (opens new window): The IPFS web browser extension.
- IPFS Web UI (opens new window): An easy-to-use web interface for IPFS nodes.
- IPFS Desktop (opens new window): Standalone IPFS app with an easy-to-use node interface, plus menubar/tray shortcuts
- ipfs-gui (opens new window): Coordinating development, user experience, and maintenance of IPFS GUIs.
- IPFS Shipyard (opens new window): GitHub org showcasing incubated projects of all types created by the global IPFS community.
- Testground (opens new window): A platform for testing, benchmarking, and simulating distributed and p2p systems at scale.
# Interoperability, platforms, and standards
- IPFS Web Browsers Integration (opens new window): Tracking progress toward native IPFS support in web browsers.
- Are We Distributed Yet? (opens new window): Prioritized listing of progress toward making peer-to-peer a first-class part of the web.
- IPFS Mobile Design Guidelines (opens new window): Best practices for making IPFS work for mobile.
- Interoperability Tests for IPFS (opens new window): On-the-wire interop for IPFS.
# Participate in IPFS project operations
IPFS project operations at large are also captured in GitHub. These repos don't necessarily contain code but do follow a similar pattern of issue creation, discussion, and resolution via comments and linked artifacts.
# Operations discussions and tools
- IPFS Community (opens new window)
- IPFS Project Roadmap (opens new window)
- IPFS Specifications (opens new window)
- IPFS Infrastructure (opens new window)
- IPFS Team Planning, Management, and Coordination (opens new window)
# Internationalization
- i18n (opens new window): The IPFS Translation Project, crowdsourcing translations of IPFS GUIs and websites.
# Discuss ideas for using IPFS
As with the IPFS project operations repos, these repositories don't necessarily contain code but instead capture discussions, ideas, and linked artifacts in an issue-driven format.
- ipfs/notes (opens new window): IPFS collaborative notebook for research.
- ipfs/community (opens new window): IPFS community discussions board.