diff --git a/docs/reference/go/api.md b/docs/reference/go/api.md index ef8ab766c..ebea1efa3 100644 --- a/docs/reference/go/api.md +++ b/docs/reference/go/api.md @@ -29,27 +29,17 @@ For more technical information about building, debugging or using the API, see: If you plan to use Kubo as a package in your own Go application, you can take any of three main approaches: - Use [kubo](https://github.com/ipfs/kubo) to run Kubo IPFS directly in your own process. -- Use [kubo RPC client](https://github.com/ipfs/go-ipfs-http-client) to communicate with a Kubo IPFS daemon in a separate process via its HTTP RPC API (this is what Kubo does if a daemon is already running). +- Use [kubo RPC client](https://pkg.go.dev/github.com/ipfs/kubo/client/rpc) to communicate with a Kubo IPFS daemon in a separate process via its HTTP RPC API (this is what Kubo does if a daemon is already running). - Use other Go packages to communicate with the HTTP RPC API directly. See the [RPC API reference](../../reference/kubo/rpc.md). -## Go CoreAPI +## Go Embedded Client -[CoreAPI interfaces](https://godoc.org/github.com/ipfs/interface-go-ipfs-core) for go-ipfs. Package iface defines IPFS Core API, which is a set of interfaces used to interact with IPFS nodes. +[Package `coreapi`](https://godoc.org/github.com/ipfs/kubo/core/coreapi) provides direct access to the core commands in IPFS. If you are embedding IPFS directly in your Go program, this package is the public interface you should use to read and write files or otherwise control IPFS. **This package is experimental and subject to change.** -## Go embedded client - -[Package coreapi](https://godoc.org/github.com/ipfs/kubo/core/coreapi) provides direct access to the core commands in IPFS. If you are embedding IPFS directly in your Go program, this package is the public interface you should use to read and write files or otherwise control IPFS. **This package is experimental and subject to change.** - -If you are running IPFS as a separate process, you should use `go-ipfs-api` to work with it via RPC. As we finalize the interfaces in this embedded client, `go-ipfs-api` will transparently adopt them so you can use the same code with either package. - -## Go HTTP clients - -[CoreAPI implementation using HTTP API](https://godoc.org/github.com/ipfs/go-ipfs-http-client). **This package is experimental and subject to change.** For an old but stable Go HTTP client, use [CoreAPI interfaces](https://godoc.org/github.com/ipfs/interface-go-ipfs-core). +If you are running Kubo as a separate process, you should use the [Kubo RPC Client](https://pkg.go.dev/github.com/ipfs/kubo/client/rpc) to work with it via RPC. ## Packages -> This table is generated using the module [`package-table`](https://github.com/ipfs-shipyard/package-table) with `package-table --data=package-list.json`. - Listing of the main go packages in the IPFS ecosystem: | Name | Go Reference | Coverage | Description | @@ -59,54 +49,34 @@ Listing of the main go packages in the IPFS ecosystem: | [`go-libp2p-pubsub`](//github.com/libp2p/go-libp2p-pubsub) | [![Go Reference](https://pkg.go.dev/badge/github.com/libp2p/go-libp2p-pubsub.svg)](https://pkg.go.dev/github.com/libp2p/go-libp2p-pubsub) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-pubsub/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/libp2p/go-libp2p-pubsub) | pubsub built on libp2p | | [`go-libp2p-kad-dht`](//github.com/libp2p/go-libp2p-kad-dht) | [![Go Reference](https://pkg.go.dev/badge/github.com/libp2p/go-libp2p-kad-dht.svg)](https://pkg.go.dev/github.com/libp2p/go-libp2p-kad-dht) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-kad-dht/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/libp2p/go-libp2p-kad-dht) | dht-backed router | | [`go-libp2p-pubsub-router`](//github.com/libp2p/go-libp2p-pubsub-router) | [![Go Reference](https://pkg.go.dev/badge/github.com/libp2p/go-libp2p-pubsub-router.svg)](https://pkg.go.dev/github.com/libp2p/go-libp2p-pubsub-router) | [![codecov](https://codecov.io/gh/libp2p/go-libp2p-pubsub-router/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/libp2p/go-libp2p-pubsub-router) | pubsub-backed router | +| **IPFS** | +| [`boxo`](//github.com/ipfs/boxo) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/boxo.svg)](https://pkg.go.dev/github.com/ipfs/boxo) | [![codecov](https://codecov.io/gh/ipfs/boxo/branch/main/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/boxo) | libraries for building IPFS applications and implementations | | **Multiformats** | | [`go-cid`](//github.com/ipfs/go-cid) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-cid.svg)](https://pkg.go.dev/github.com/ipfs/go-cid) | [![codecov](https://codecov.io/gh/ipfs/go-cid/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-cid) | CID implementation | | [`go-multiaddr`](//github.com/multiformats/go-multiaddr) | [![Go Reference](https://pkg.go.dev/badge/github.com/multiformats/go-multiaddr.svg)](https://pkg.go.dev/github.com/multiformats/go-multiaddr) | [![codecov](https://codecov.io/gh/multiformats/go-multiaddr/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/multiformats/go-multiaddr) | multiaddr implementation | | [`go-multihash`](//github.com/multiformats/go-multihash) | [![Go Reference](https://pkg.go.dev/badge/github.com/multiformats/go-multihash.svg)](https://pkg.go.dev/github.com/multiformats/go-multihash) | [![codecov](https://codecov.io/gh/multiformats/go-multihash/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/multiformats/go-multihash) | multihash implementation | | [`go-multibase`](//github.com/multiformats/go-multibase) | [![Go Reference](https://pkg.go.dev/badge/github.com/multiformats/go-multibase.svg)](https://pkg.go.dev/github.com/multiformats/go-multibase) | [![codecov](https://codecov.io/gh/multiformats/go-multibase/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/multiformats/go-multibase) | mulitbase implementation | -| **Files** | -| [`go-unixfs`](//github.com/ipfs/go-unixfs) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-unixfs.svg)](https://pkg.go.dev/github.com/ipfs/go-unixfs) | [![codecov](https://codecov.io/gh/ipfs/go-unixfs/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-unixfs) | the core 'filesystem' logic | -| [`go-mfs`](//github.com/ipfs/go-mfs) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-mfs.svg)](https://pkg.go.dev/github.com/ipfs/go-mfs) | [![codecov](https://codecov.io/gh/ipfs/go-mfs/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-mfs) | a mutable filesystem editor for unixfs | -| [`go-ipfs-posinfo`](//github.com/ipfs/go-ipfs-posinfo) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-posinfo.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-posinfo) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-posinfo/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-posinfo) | helper datatypes for the filestore | -| [`go-ipfs-chunker`](//github.com/ipfs/go-ipfs-chunker) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-chunker.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-chunker) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-chunker/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-chunker) | file chunkers | -| **Exchange** | -| [`go-ipfs-exchange-interface`](//github.com/ipfs/go-ipfs-exchange-interface) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-exchange-interface.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-exchange-interface) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-exchange-interface/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-exchange-interface) | exchange service interface | -| [`go-ipfs-exchange-offline`](//github.com/ipfs/go-ipfs-exchange-offline) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-exchange-offline.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-exchange-offline) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-exchange-offline/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-exchange-offline) | (dummy) offline implementation of the exchange service | -| [`go-bitswap`](//github.com/ipfs/go-bitswap) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-bitswap.svg)](https://pkg.go.dev/github.com/ipfs/go-bitswap) | [![codecov](https://codecov.io/gh/ipfs/go-bitswap/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-bitswap) | bitswap protocol implementation | -| [`go-blockservice`](//github.com/ipfs/go-blockservice) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-blockservice.svg)](https://pkg.go.dev/github.com/ipfs/go-blockservice) | [![codecov](https://codecov.io/gh/ipfs/go-blockservice/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-blockservice) | service that plugs a blockstore and an exchange together | | **Datastores** | | [`go-datastore`](//github.com/ipfs/go-datastore) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-datastore.svg)](https://pkg.go.dev/github.com/ipfs/go-datastore) | [![codecov](https://codecov.io/gh/ipfs/go-datastore/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-datastore) | datastore interfaces, adapters, and basic implementations | -| [`go-ipfs-ds-help`](//github.com/ipfs/go-ipfs-ds-help) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-ds-help.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-ds-help) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-ds-help/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-ds-help) | datastore utility functions | | [`go-ds-flatfs`](//github.com/ipfs/go-ds-flatfs) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ds-flatfs.svg)](https://pkg.go.dev/github.com/ipfs/go-ds-flatfs) | [![codecov](https://codecov.io/gh/ipfs/go-ds-flatfs/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ds-flatfs) | a filesystem-based datastore | | [`go-ds-measure`](//github.com/ipfs/go-ds-measure) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ds-measure.svg)](https://pkg.go.dev/github.com/ipfs/go-ds-measure) | [![codecov](https://codecov.io/gh/ipfs/go-ds-measure/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ds-measure) | a metric-collecting database adapter | | [`go-ds-leveldb`](//github.com/ipfs/go-ds-leveldb) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ds-leveldb.svg)](https://pkg.go.dev/github.com/ipfs/go-ds-leveldb) | [![codecov](https://codecov.io/gh/ipfs/go-ds-leveldb/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ds-leveldb) | a leveldb based datastore | | [`go-ds-badger`](//github.com/ipfs/go-ds-badger) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ds-badger.svg)](https://pkg.go.dev/github.com/ipfs/go-ds-badger) | [![codecov](https://codecov.io/gh/ipfs/go-ds-badger/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ds-badger) | a badgerdb based datastore | -| **Namesys** | -| [`go-ipns`](//github.com/ipfs/go-ipns) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipns.svg)](https://pkg.go.dev/github.com/ipfs/go-ipns) | [![codecov](https://codecov.io/gh/ipfs/go-ipns/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipns) | IPNS datastructures and validation logic | | **Repo** | | [`go-fs-lock`](//github.com/ipfs/go-fs-lock) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-fs-lock.svg)](https://pkg.go.dev/github.com/ipfs/go-fs-lock) | [![codecov](https://codecov.io/gh/ipfs/go-fs-lock/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-fs-lock) | lockfile management functions | | [`fs-repo-migrations`](//github.com/ipfs/fs-repo-migrations) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/fs-repo-migrations.svg)](https://pkg.go.dev/github.com/ipfs/fs-repo-migrations) | [![codecov](https://codecov.io/gh/ipfs/fs-repo-migrations/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/fs-repo-migrations) | repo migrations | | **IPLD** | | [`go-block-format`](//github.com/ipfs/go-block-format) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-block-format.svg)](https://pkg.go.dev/github.com/ipfs/go-block-format) | [![codecov](https://codecov.io/gh/ipfs/**go**-block-format/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-block-format) | block interfaces and implementations | -| [`go-ipfs-blockstore`](//github.com/ipfs/go-ipfs-blockstore) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-blockstore.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-blockstore) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-blockstore/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-blockstore) | blockstore interfaces and implementations | | [`go-ipld-format`](//github.com/ipfs/go-ipld-format) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipld-format.svg)](https://pkg.go.dev/github.com/ipfs/go-ipld-format) | [![codecov](https://codecov.io/gh/ipfs/go-ipld-format/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipld-format) | IPLD interfaces | | [`go-ipld-cbor`](//github.com/ipfs/go-ipld-cbor) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipld-cbor.svg)](https://pkg.go.dev/github.com/ipfs/go-ipld-cbor) | [![codecov](https://codecov.io/gh/ipfs/go-ipld-cbor/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipld-cbor) | IPLD-CBOR implementation | | [`go-ipld-git`](//github.com/ipfs/go-ipld-git) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipld-git.svg)](https://pkg.go.dev/github.com/ipfs/go-ipld-git) | [![codecov](https://codecov.io/gh/ipfs/go-ipld-git/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipld-git) | IPLD-Git implementation | | [`go-merkledag`](//github.com/ipfs/go-merkledag) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-merkledag.svg)](https://pkg.go.dev/github.com/ipfs/go-merkledag) | [![codecov](https://codecov.io/gh/ipfs/go-merkledag/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-merkledag) | IPLD-Merkledag implementation (and then some) | | **Commands** | | [`go-ipfs-cmds`](//github.com/ipfs/go-ipfs-cmds) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-cmds.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-cmds) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-cmds/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-cmds) | CLI & HTTP commands library | -| [`go-ipfs-files`](//github.com/ipfs/go-ipfs-files) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-files.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-files) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-files/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-files) | CLI & HTTP commands library | -| [`go-ipfs-api`](//github.com/ipfs/go-ipfs-api) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-api.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-api) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-api/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-api) | an old, stable shell for the IPFS HTTP API | -| [`go-ipfs-http-client`](//github.com/ipfs/go-ipfs-http-client) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-http-client.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-http-client) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-http-client/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-http-client) | a new, unstable shell for the IPFS HTTP API | -| [`interface-go-ipfs-core`](//github.com/ipfs/interface-go-ipfs-core) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/interface-go-ipfs-core.svg)](https://pkg.go.dev/github.com/ipfs/interface-go-ipfs-core) | [![codecov](https://codecov.io/gh/ipfs/interface-go-ipfs-core/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/interface-go-ipfs-core) | core go-ipfs API interface definitions | | **Metrics & Logging** | | [`go-metrics-interface`](//github.com/ipfs/go-metrics-interface) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-metrics-interface.svg)](https://pkg.go.dev/github.com/ipfs/go-metrics-interface) | [![codecov](https://codecov.io/gh/ipfs/go-metrics-interface/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-metrics-interface) | metrics collection interfaces | | [`go-metrics-prometheus`](//github.com/ipfs/go-metrics-prometheus) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-metrics-prometheus.svg)](https://pkg.go.dev/github.com/ipfs/go-metrics-prometheus) | [![codecov](https://codecov.io/gh/ipfs/go-metrics-prometheus/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-metrics-prometheus) | prometheus-backed metrics collector | | [`go-log`](//github.com/ipfs/go-log) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-log.svg)](https://pkg.go.dev/github.com/ipfs/go-log) | [![codecov](https://codecov.io/gh/ipfs/go-log/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-log) | logging framework | -| **Generics/Utils** | -| [`go-ipfs-routing`](//github.com/ipfs/go-ipfs-routing) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-routing.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-routing) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-routing/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-routing) | routing (content, peer, value) helpers | -| [`go-ipfs-util`](//github.com/ipfs/go-ipfs-util) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-util.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-util) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-util/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-util) | the kitchen sink | -| [`go-ipfs-addr`](//github.com/ipfs/go-ipfs-addr) | [![Go Reference](https://pkg.go.dev/badge/github.com/ipfs/go-ipfs-addr.svg)](https://pkg.go.dev/github.com/ipfs/go-ipfs-addr) | [![codecov](https://codecov.io/gh/ipfs/go-ipfs-addr/branch/master/graph/badge.svg?style=flat-square)](https://codecov.io/gh/ipfs/go-ipfs-addr) | utility functions for parsing IPFS multiaddrs | ## Hands-on examples diff --git a/docs/reference/kubo-rpc-cli.md b/docs/reference/kubo-rpc-cli.md index 12c952479..355d1d942 100644 --- a/docs/reference/kubo-rpc-cli.md +++ b/docs/reference/kubo-rpc-cli.md @@ -12,7 +12,7 @@ RPC API clients are available in multiple languages, and are listed below. You c | Language | Client library | Status | |---------------|-----------------------------------------------------------|---------------------| -| Go | [ipfs/go-ipfs-api](https://github.com/ipfs/go-ipfs-api) | Active | +| Go | [ipfs/kubo/client/rpc](https://pkg.go.dev/github.com/ipfs/kubo/client/rpc) | Active | | Java | [ipfs-shipyard/java-ipfs-http-client](https://github.com/ipfs-shipyard/java-ipfs-http-client) | Active | | JavaScript | [ipfs/js-ipfs/tree/master/packages/ipfs-http-client](https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs-http-client) | Active | | Python | [ipfs-shipyard/py-ipfs-http-client](https://github.com/ipfs-shipyard/py-ipfs-http-client) | Active |