Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add IPFS Implementations page #1193

Merged
merged 9 commits into from
Jul 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ module.exports = {
path: '/basics/',
children: [
'basics/desktop-app',
'basics/command-line'
'basics/command-line',
'basics/ipfs-implementations'
]
},
{
Expand Down
4 changes: 4 additions & 0 deletions docs/basics/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@ Have an idea of what IPFS is but haven't really used it before? You should start
![An IPFS daemon running in a terminal window.](./images/ipfs-command-line.png)

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)
14 changes: 8 additions & 6 deletions docs/basics/command-line.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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:

Expand Down
41 changes: 41 additions & 0 deletions docs/basics/ipfs-implementations.md
Original file line number Diff line number Diff line change
@@ -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 |