# IPFS repository guide

IPFS is an extensive open-source project, and with that comes a lot of code and issue-based discussions. The IPFS project uses GitHub for both code development and 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:

# 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

WARNING

# js-ipfs being discontinued

Development of the js-ipfs project (opens new window) is being discontinued to focus on Helia (opens new window), a leaner, more modular, modern implementation of IPFS in JavaScript scheduled for release in 2023. To learn more about Helia and the current state of IPFS in JS, see the blog post (opens new window).

Because of this, js-ipfs tutorials may be out of date, and will eventually be archived.

# Client implementations

# Underlying components

Subsystem Go JavaScript Rust
LibP2P (opens new window) go-libp2p (opens new window) js-libp2p (opens new window) rust-libp2p (opens new window)
IPLD (opens new window) go-ipld (opens new window), go-ipld-prime (opens new window) js-ipld (opens new window) libipld (opens new window)
IPNS go-ipns (opens new window) js-ipns (opens new window) rust-ipns (opens new window)
Multiaddr (opens new window) go-multiaddr (opens new window) js-multiaddr (opens new window) rust-multiaddr (opens new window)
Multicodec (opens new window) go-multicodec (opens new window) js-multiformats (opens new window) N/A
Multihash (opens new window) go-multihash (opens new window) js-multiformats (opens new window) rust-multihash (opens new window)
Multibase (opens new window) go-multibase (opens new window) js-multiformats (opens new window) rust-multibase (opens new window)
CID N/A js-multiformats (opens new window) rust-cid (opens new window)

# IPFS tools and products

# Interoperability, platforms, and standards

# 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

# Internationalization