# IPFS implementations
There isn't one canonical IPFS implementation. There is so much to explore in this space that it's ideal to have a plethora of implementations experimenting and optimizing for various usecases. Below is a list of IPFS implementations that we know of in name alphabetical order. If you're aware of more, please add!
Looking into implementing IPFS yourself?
Relevant specifications are listed in ipfs/specs (opens new window).
|Name||URL||Language(s)||What it's trying to do|
|auspinner||https://github.com/2color/auspinner (opens new window)||go||CLI tool to deal with the pinning service API and upload files through bitswap.|
|barge||https://github.com/application-research/estuary/tree/master/cmd/barge (opens new window)||go||CLI tool with a git like workflow to upload deltas to estuary.|
|Boost||https://github.com/filecoin-project/boost (opens new window)||go||Daemon to get IPFS data in and out of a Filecoin storage provider.|
|Estuary||https://github.com/application-research/estuary/ (opens new window)||go||Daemon oriented service to pin and onboard IPFS data into Filecoin.|
|gomobile-ipfs||https://github.com/ipfs-shipyard/gomobile-ipfs (opens new window)||go||Librairy oriented ipfs daemon to help embeding Kubo into a mobile app.|
|ipfs cluster||https://github.com/ipfs/ipfs-cluster (opens new window)||go||CRDT / Raft consensus between some more less trusted nodes to allocate and synchronise a pinset on multiple IPFS nodes.|
|ipfs tiny||https://gitlab.com/librespacefoundation/ipfs-tiny (opens new window)||c++||Tiny embeddable, os-independent IPFS implementation.|
|ipfs-embed||https://github.com/ipfs-rust/ipfs-embed (opens new window)||rust||Small embeddable ipfs implementation.|
|ipfs-lite||https://github.com/hsanjuan/ipfs-lite (opens new window)||go||Minimal librairy oriented ipfs daemon building on the same blocks as Kubo but with a minimal glue layer.|
|ipfs-nucleus||https://github.com/peergos/ipfs-nucleus/ (opens new window)||go||Minimal IPFS replacement for P2P IPLD apps.|
|ipget||https://github.com/ipfs/ipget (opens new window)||go||Minimal wget insipired tool to download files from IPFS nodes over bitswap.|
|iroh||https://github.com/n0-computer/iroh (opens new window)||rust||Extreme-Efficiency oriented IPFS implementation.|
|Kubo||https://github.com/ipfs/kubo (opens new window)||go||Generalist daemon oriented IPFS implementation with an extensive HTTP API.|
|Linux2ipfs||https://github.com/Jorropo/linux2ipfs (opens new window)||go||Small pipeline and extreme-performance oriented implementation to upload files and deltas to pinning services very fast.|
|Lotus||https://github.com/filecoin-project/lotus (opens new window)||go||Filecoin node handling consensus, storage providing, making storage deals, importing data, ...|
|py-ipfs||https://github.com/ipfs-shipyard/py-ipfs (opens new window)||python||Python IPFS implementation.|
|rust-ipfs||https://github.com/rs-ipfs/rust-ipfs (opens new window)||rust||Rust IPFS implementation.|
|whypfs||https://github.com/whyrusleeping/whypfs (opens new window)||go||Daemon based on the same building blocks as Kubo but with some options tweaking for more performance.|