Skip to content

Commit 06b8cc6

Browse files
committed
edits
1 parent db2f6ef commit 06b8cc6

File tree

3 files changed

+643
-17591
lines changed

3 files changed

+643
-17591
lines changed

docs/.vuepress/config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,6 @@ module.exports = {
176176
'/concepts/merkle-dag'
177177
]
178178
},
179-
'/concepts/ipfs-implementations',
180179
'/concepts/comparisons',
181180
'/concepts/usage-ideas-examples',
182181
['/concepts/measuring', 'Measuring the network'],
@@ -307,6 +306,7 @@ module.exports = {
307306
],
308307
'/reference/': [
309308
'/reference/diagnostic-tools',
309+
'/reference/ipfs-implementations',
310310
'/reference/http/gateway',
311311
'/reference/js/api',
312312
'/reference/go/api',

docs/concepts/ipfs-implementations.md renamed to docs/reference/ipfs-implementations.md

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,73 +19,85 @@ Looking for an easy, user-friendly way to get started with IPFS? Try any of the
1919
- [Brave Browser](../how-to/companion-node-types.md#native), native support for IPFS in a browser with a Kubo node built directly into the browser itself.
2020
:::
2121

22+
The implementation or tool that you use to interact with and use IPFS depends on your partiuclar use case.
23+
24+
- [Use IPFS with your browser](#use-ipfs-with-your-browser)
25+
- [Use IPFS without code](#use-ipfs-without-code)
26+
- [Interact via the CLI](#interact-via-the-cli)
27+
- [Develop applications](#develop-applications)
28+
2229
### Use IPFS with your browser
2330

2431
Interact with the network using any Brave, Chrome, Edge, Firefox, Opera, and any other Chromium-based web browser using the [IPFS Companion browser extension](./install/ipfs-companion.md).
2532

26-
### Interact with IPFS without code
33+
### Use IPFS without code
2734

28-
The IPFS Desktop implementation is a desktop-based application that bundles an IPFS node, file manager, peer manager, and content explorer together. No need to touch the terminal or use code. Just [install Desktop](../install/ipfs-desktop.md) and quickly access the network.
35+
- If you'd like desktop-native GUI application, IPFS Desktop bundles an IPFS node, file manager, peer manager, and content explorer together. No need to touch the terminal or use code. Just [install Desktop](../install/ipfs-desktop.md) and quickly access the network.
36+
- To store data on IPFS persistently, without dealing with any applications or installations, you can also use a [pinning service](../concepts/persistence.md#pinning-services). You can follow [this quickstart guide](../quickstart/publish.md) to learn more.
2937

3038
### Interact via the CLI
3139

3240
You can interact with the IPFS network via the terminal:
3341

3442
- To quickly retreive data with minimal complexity and overhead, use the [Lassie client](https://github.com/filecoin-project/lassie/), which provides a [simple command-line interface](https://github.com/filecoin-project/lassie/#command-line-interface), in addition to other features.
35-
36-
- For a wider range of features, use [IPFS Kubo as a command-line tool](../reference/kubo/cli.md).
43+
- For a wider range of features, use [IPFS Kubo as a command-line tool](kubo/cli.md).
3744

3845
### Develop applications
3946

40-
#### Language agnostic
41-
42-
If you'd like to use IPFS over standard HTTP, you havve several options:
47+
You can develop IPFS applications with native support in languages such as [Go](#go) or [JavaScript](#javascript), or by [using HTTP](#http). There are also tools available to support [specialized use cases such as data orchestration and mobile applications](#specialized-use-cases).
4348

44-
- If you simply want to retrieve data, use the [Lassie client HTTP API](https://github.com/filecoin-project/lassie/#http-api).
49+
#### HTTP
4550

46-
- You can control an IPFS Kubo node using HTTP via the [Kubo RPC API](../reference/kubo/rpc.md), with the same range of functionality available via the [Kubo CLI](../reference/kubo/cli.md). There are multiple [RPC API clients in multiple languages](../reference/kubo-rpc-cli.md) to choose from.
51+
If you'd like to use IPFS over standard HTTP, you have several options:
4752

53+
- If you simply want to retrieve data, use the [Lassie client HTTP API](https://github.com/filecoin-project/lassie/#http-api).
54+
- You can control an IPFS Kubo node using HTTP via the [Kubo RPC API](kubo/rpc.md), with the same range of functionality available via the [Kubo CLI](kubo/cli.md). There are multiple [RPC API clients in multiple languages](kubo-rpc-cli.md) to choose from.
4855
- For an implementation and runtime agnostic HTTP interface, use an [IPFS gateway](./reference/http/gateway.md).
4956

50-
#### Language specific
51-
52-
##### Go
57+
#### Go
5358

5459
Looking for to add IPFS functionality to your Go application? Try these implementations:
5560

5661
- To quickly retrieve data with minimal complexity and overhead, use the [Lassie client Golang library](https://github.com/filecoin-project/lassie/#golang-library) in your applications.
57-
5862
- For more complicated applications requiring the full range of IPFS functionality, use Kubo or Boxo.
5963

60-
**Use Kubo if you want**:
64+
##### When to use Kubo
6165

62-
- To run a full-featured IPFS node that can interact with the wider IPFS network
63-
- Build applications in Go
66+
Use Kubo if you want:
6467

65-
**Use Boxo if you**:
68+
- To run a full-featured IPFS node that can interact with the wider IPFS network.
69+
- Build applications in Go.
6670

67-
- Are building a modular application that interacts with the IPFS network
68-
- Want more choice in which features you include in your application
69-
- Are building an IPFS implementation
70-
- Want to reuse some components of IPFS such as the Kademlia DHT, Bitswap, data encoding, etc., without the full featureset of Kubo
71-
- Want to experiment with IPFS
71+
##### When to use Boxo
7272

73-
##### JavaScript
73+
Use Boxo if you:
7474

75-
To create IPFS applications in JavaScript, use the [IPFS Helia implementation in JavaScript](https://github.com/ipfs/helia).
75+
- Are building a modular application that interacts with the IPFS network.
76+
- Want more choice in which features you include in your application.
77+
- Are building an IPFS implementation.
78+
- Want to reuse some components of IPFS such as the Kademlia DHT, Bitswap, data encoding, etc., without the full featureset of Kubo.
79+
- Want to experiment with IPFS.
7680

77-
##### Rust
81+
#### JavaScript
7882

79-
##### C
83+
To create IPFS applications in JavaScript, use the [IPFS Helia implementation in JavaScript](https://github.com/ipfs/helia).
8084

8185
#### Specialized use cases
8286

83-
##### Embedded applications / Java
87+
##### Orchestrating nodes
88+
89+
For complex applications that require data orchestration across a swarm of IPFS daemons, use [ipfs-cluster](https://github.com/ipfs-cluster/ipfs-cluster), which allocates, replicates and tracks a global pinset distributed among multiple peers.
90+
91+
##### Embedded applications
8492

85-
If you're looking to develop embedded applications and/or applications in Java, use [Nabu](https://github.com/peergos/nabu).
93+
- If you're looking to develop embedded applications in Java, use [Nabu](https://github.com/peergos/nabu).
94+
- For embedded applications in Rust, use [ipfs-lite](https://github.com/hsanjuan/ipfs-lite).
8695

8796
##### Mobile applications
8897

98+
- For an iOS and Android app with IPFS read and share flows, try [Durin](https://github.com/ipfs-shipyard/Durin).
99+
- If you need packages for Android, iOS and React-native that allow you to run and use an IPFS node on a mobile device, use [gomobile-ipfs](https://github.com/ipfs-shipyard/gomobile-ipfs).
100+
89101
## Implementations and tools catalog
90102

91103
IPFS implementations are listed below, and are grouped into the following categories:
@@ -101,10 +113,8 @@ IPFS implementations are listed below, and are grouped into the following catego
101113
| bifrost-gateway | <https://github.com/ipfs/bifrost-gateway> | go | Lightweight IPFS HTTP Gateway daemon backed by a remote data store. |
102114
| boost | <https://github.com/filecoin-project/boost> | go | Daemon to get IPFS data in and out of a Filecoin storage provider. |
103115
| boxo | <https://github.com/ipfs/boxo> | go | A component library for building IPFS applications and implementations in Go. |
104-
| Elastic provider | <https://github.com/ipfs-elastic-provider/ipfs-elastic-provider> | javascript, typescript | Scalable cloud-native implementation. |
105116
| helia | <https://github.com/ipfs/helia> | javascript | A lean, modular, and modern implementation of IPFS for the prolific JS and browser environments |
106117
| ipfs cluster | <https://github.com/ipfs/ipfs-cluster> | go | Orchestration for multiple Kubo nodes via CRDT / Raft consensus |
107-
| iroh | <https://github.com/n0-computer/iroh> | rust | Extreme-efficiency oriented IPFS implementation. |
108118
| Kubo | <https://github.com/ipfs/kubo> | go | Generalist daemon oriented IPFS implementation with an extensive HTTP RPC API. |
109119
| Lassie | <https://github.com/filecoin-project/lassie/>  | go | A minimal universal retrieval client library for IPFS and Filecoin. |
110120
| Lotus | <https://github.com/filecoin-project/lotus> | go | Filecoin node handling consensus, storage providing, making storage deals, importing data, ... |
@@ -130,6 +140,7 @@ IPFS implementations are listed below, and are grouped into the following catego
130140
| Agregore | <https://github.com/AgregoreWeb/agregore-ipfs-daemon> | go, javascript | Mobile friendly Kubo daemon. |
131141
| barge | <https://github.com/application-research/barge> | go | CLI tool with a git like workflow to upload deltas to estuary. |
132142
| c-ipfs | <https://git.agorise.net/agorise/c-ipfs> | C | IPFS implementation in C. |
143+
| Elastic provider | <https://github.com/ipfs-elastic-provider/ipfs-elastic-provider> | javascript, typescript | Scalable cloud-native implementation. |
133144
| Estuary | <https://github.com/application-research/estuary/> | go | Daemon oriented service to pin and onboard IPFS data into Filecoin. |
134145
| ipfs tiny | <https://gitlab.com/librespacefoundation/ipfs-tiny> | c++ | Tiny embeddable, os-independent IPFS implementation. |
135146
| ipget | <https://github.com/ipfs/ipget> | go | Minimal wget inspired tool to download files from IPFS nodes over bitswap. |

0 commit comments

Comments
 (0)