diff --git a/docs/concepts/ipfs-implementations.md b/docs/concepts/ipfs-implementations.md index 5870c27b3..77c3b98e9 100644 --- a/docs/concepts/ipfs-implementations.md +++ b/docs/concepts/ipfs-implementations.md @@ -5,35 +5,31 @@ description: "There isn't just one canonical IPFS implementation. Learn about th # 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! +IPFS is an open-source project that encourages the development of multiple implementations of the protocol, each of which seeks to optimize for various use cases. Below is non-exhaustive list of IPFS implementations, grouped by development and maintenance status ([active](#actively-maintained) and [inactive](#inactive)) and ordered alphabetically. If you're aware of more implementations, [edit this page in GitHub](https://github.com/ipfs/ipfs-docs/edit/main/docs/concepts/ipfs-implementations.md) or [open an issue](https://github.com/ipfs/ipfs-docs/issues/new?assignees=&labels=need%2Ftriage&template=open_an_issue.md&title=IPFS%20Implementations) to have the list updated. ::: tip Looking into implementing IPFS yourself? -Relevant specifications are listed in [ipfs/specs](https://github.com/ipfs/specs/). +See the official [IPFS Specifications](https://github.com/ipfs/specs/). ::: +## Actively maintained + | Name | URL | Language(s) | What it's trying to do | |------------------|-------------------------------------------------------------------------|------------------------|--------------------------------------------------------------------------------------------------------------------------| | auspinner | | go | CLI tool to deal with the pinning service API and upload files through bitswap. | -| Agregore | | go, javascript | Mobile friendly Kubo daemon. | -| barge | | go | CLI tool with a git like workflow to upload deltas to estuary. | +| barge | | go | CLI tool with a git like workflow to upload deltas to estuary. | | Boost | | go | Daemon to get IPFS data in and out of a Filecoin storage provider. | | Elastic provider | | javascript, typescript | Scallable Cloud-Native implementation. | | Estuary | | go | Daemon oriented service to pin and onboard IPFS data into Filecoin. | | gomobile-ipfs | | go | Library oriented ipfs daemon to help embeding Kubo into a mobile app. | | ipfs cluster | | go | CRDT / Raft consensus between some more less trusted nodes to allocate and synchronise a pinset on multiple IPFS nodes. | -| ipfs tiny | | c++ | Tiny embeddable, os-independent IPFS implementation. | | ipfs-embed | | rust | Small embeddable ipfs implementation. | | ipfs-lite | | go | Minimal library oriented ipfs daemon building on the same blocks as Kubo but with a minimal glue layer. | | ipfs-nucleus |   | go | Minimal IPFS replacement for P2P IPLD apps. | -| ipget | | go | Minimal wget insipired tool to download files from IPFS nodes over bitswap. | | iroh | | rust | Extreme-Efficiency oriented IPFS implementation. | | js-ipfs | | javascript, typescript | Javascript implementation targeting nodejs and browsers. [**Development of js-ipfs is being discontinued**](#js-ipfs-being-discontinued). | | Kubo | | go | Generalist daemon oriented IPFS implementation with an extensive HTTP API. | -| Linux2ipfs | | go | Small pipeline and extreme-performance oriented implementation to upload files and deltas to pinning services very fast. | | Lotus | | go | Filecoin node handling consensus, storage providing, making storage deals, importing data, ... | -| py-ipfs | | python | Python IPFS implementation. | -| rust-ipfs | | rust | Rust IPFS implementation. | | whypfs | | go | Daemon based on the same building blocks as Kubo but with some options tweaking for more performance. | :::warning @@ -41,5 +37,16 @@ Relevant specifications are listed in [ipfs/specs](https://github.com/ipfs/specs Development of the [js-ipfs project](https://github.com/ipfs/js-ipfs) is being discontinued to focus on [Helia](https://github.com/ipfs/helia), 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](https://blog.ipfs.tech/state-of-ipfs-in-js/). Because of this, js-ipfs tutorials may be out of date, and will eventually be archived. +::: + +## Inactive -::: \ No newline at end of file +| Name | URL | Language(s) | What it's trying to do | +|------------------|-------------------------------------------------------------------------|------------------------|--------------------------------------------------------------------------------------------------------------------------| +| Agregore | | go, javascript | Mobile friendly Kubo daemon. | +| ipfs tiny | | c++ | Tiny embeddable, os-independent IPFS implementation. | +| ipget | | go | Minimal wget inspired tool to download files from IPFS nodes over bitswap. | +| Linux2ipfs | | go | Small pipeline and extreme-performance oriented implementation to upload files and deltas to pinning services very fast. | +| py-ipfs | | python | Python IPFS implementation. | +| rust-ipfs | | rust | Rust IPFS implementation. | +| whypfs | | go | Daemon based on the same building blocks as Kubo but with some options tweaking for more performance. |