diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 67653c667..d5d8bf4f3 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -86,7 +86,8 @@ module.exports = { path: '/basics/', children: [ 'basics/desktop-app', - 'basics/command-line' + 'basics/command-line', + 'basics/ipfs-implementations' ] }, { diff --git a/docs/basics/README.md b/docs/basics/README.md index 8a45620d5..43f20956b 100644 --- a/docs/basics/README.md +++ b/docs/basics/README.md @@ -18,3 +18,7 @@ Have an idea of what IPFS is but haven't really used it before? You should start  If you're a bit more serious about IPFS and want to start poking around the command-line interfact (CLI), then this section is for you. No buttons or images here; [just good-old-fashioned CLI interfaces and pipeable commands →](./command-line.md) + +## Other implementations + +There are many other IPFS implementations than the onramps discussed above. [Check them out here!](./ipfs-implementations.md) diff --git a/docs/basics/command-line.md b/docs/basics/command-line.md index 91bfde079..6195410cf 100644 --- a/docs/basics/command-line.md +++ b/docs/basics/command-line.md @@ -1,19 +1,21 @@ --- title: "Command-line" -description: "A simple walkthrough of how to perform basic IPFS operations using the command-line." +description: "A simple walkthrough of how to perform basic IPFS operations using the Kubo command-line." --- # Basic CLI Operations -This short guide aims to walk you through the basics of using IPFS with the CLI. You will learn how to add, retrieve, read, and remove files within the CLI. If you are unsure about the meaning of some terms, you can check out the [glossary](../concepts/glossary.md). +This short guide aims to walk you through the basics of using IPFS with the Kubo CLI. Kubo is [one of multiple IPFS implementations](.ipfs-implementations.md). It is the oldest IPFS implementation and exposes a CLI (among other things). + +You will learn how to add, retrieve, read, and remove files within the CLI. If you are unsure about the meaning of some terms, you can check out the [glossary](../concepts/glossary.md). All instructions and examples shown here were performed and tested on an M1 Mac. However, the IPFS commands are the same on Linux, macOS, and Windows. You will need to know how to navigate your computer's directories from within the CLI. If you're unsure how to use the CLI, we recommend learning how before continuing with this guide. -## Install IPFS +## Install Kubo -Next up, we need to install IPFS for the command-line. We have a great guide that will walk you through how to [install IPFS with the CLI](../install/command-line.md). +Next up, we need to install Kubo for the command-line. We have a great guide that will walk you through how to [install Kubo with the CLI](../install/command-line.md). -Once you have IPFS installed, we need to get our node up and running. If this is your first time using IPFS, you will first need to initialize the configuration files: +Once you have Kubo installed, we need to get our node up and running. If this is your first time using Kubo, you will first need to initialize the configuration files: ```shell ipfs init @@ -55,7 +57,7 @@ Do not close the CLI that you used to initialize your daemon. Only terminate the ## Add files -Now that we have our IPFS node up and running, we're ready to add files to IPFS. +Now that we have our Kubo IPFS node up and running, we're ready to add files to IPFS. 1. Within the CLI, navigate to the directory containing the file or folder you wish to share. In this example, we will navigate to the `~/Documents` directory: diff --git a/docs/basics/ipfs-implementations.md b/docs/basics/ipfs-implementations.md new file mode 100644 index 000000000..7d3d12e2b --- /dev/null +++ b/docs/basics/ipfs-implementations.md @@ -0,0 +1,41 @@ +--- +title: IPFS Implementations +description: Learn about the various IPFS implementations available for different usecases +--- + + +**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! + +::: tip +Looking into implementing IPFS yourself? +Relevant specifications are listed in [ipfs/specs](https://github.com/ipfs/specs/). +::: + + + +| Name | URL | Language(s) | +|------------------|-------------------------------------------------------------------------|------------------------| +| Agregore | <https://github.com/AgregoreWeb/agregore-ipfs-daemon> | go, javascript | +| barge | <https://github.com/application-research/estuary/tree/master/cmd/barge> | go | +| Boost | <https://github.com/filecoin-project/boost> | go | +| Elastic provider | <https://github.com/ipfs-elastic-provider/ipfs-elastic-provider> | javascript, typescript | +| Estuary | <https://github.com/application-research/estuary/> | go | +| gomobile-ipfs | <https://github.com/ipfs-shipyard/gomobile-ipfs> | go | +| ipfs cluster | <https://github.com/ipfs/ipfs-cluster> | go | +| ipfs tiny | <https://gitlab.com/librespacefoundation/ipfs-tiny> | c++ | +| ipfs-embed | <https://github.com/ipfs-rust/ipfs-embed> | rust | +| ipfs-lite | <https://github.com/hsanjuan/ipfs-lite> | go | +| ipfs-nucleus | <https://github.com/peergos/ipfs-nucleus/> | go | +| ipget | <https://github.com/ipfs/ipget> | go | +| iroh | <https://github.com/n0-computer/iroh> | rust | +| js-ipfs | <https://github.com/ipfs/js-ipfs> | javascript, typescript | +| Kubo | <https://github.com/ipfs/kubo> | go | +| Lotus | <https://github.com/filecoin-project/lotus> | go | +| py-ipfs | <https://github.com/ipfs-shipyard/py-ipfs> | python | +| rust-ipfs | <https://github.com/rs-ipfs/rust-ipfs> | rust | +| whypfs | <https://github.com/whyrusleeping/whypfs> | go |