Skip to content

Add a table with GO libraries to "IPFS in GO" page  #1208

Closed
@lidel

Description

@lidel

After #1185 lands, we will have "IPFS in GO" page (same content as https://docs.ipfs.io/reference/go/api/).

I think it is a good place to point people at all the Go libraries available.

We already had prior art content in Kubo README (copy below). Moving it to docs is a good idea.

Packages

This table is generated using the module package-table with package-table --data=package-list.json.
Listing of the main packages used in the IPFS ecosystem. There are also three specifications worth linking here:

Name CI/Travis Coverage Description
Libp2p
go-libp2p Travis CI codecov p2p networking library
go-libp2p-pubsub Travis CI codecov pubsub built on libp2p
go-libp2p-kad-dht Travis CI codecov dht-backed router
go-libp2p-pubsub-router Travis CI codecov pubsub-backed router
Multiformats
go-cid Travis CI codecov CID implementation
go-multiaddr Travis CI codecov multiaddr implementation
go-multihash Travis CI codecov multihash implementation
go-multibase Travis CI codecov mulitbase implementation
Files
go-unixfs Travis CI codecov the core 'filesystem' logic
go-mfs Travis CI codecov a mutable filesystem editor for unixfs
go-ipfs-posinfo Travis CI codecov helper datatypes for the filestore
go-ipfs-chunker Travis CI codecov file chunkers
Exchange
go-ipfs-exchange-interface Travis CI codecov exchange service interface
go-ipfs-exchange-offline Travis CI codecov (dummy) offline implementation of the exchange service
go-bitswap Travis CI codecov bitswap protocol implementation
go-blockservice Travis CI codecov service that plugs a blockstore and an exchange together
Datastores
go-datastore Travis CI codecov datastore interfaces, adapters, and basic implementations
go-ipfs-ds-help Travis CI codecov datastore utility functions
go-ds-flatfs Travis CI codecov a filesystem-based datastore
go-ds-measure Travis CI codecov a metric-collecting database adapter
go-ds-leveldb Travis CI codecov a leveldb based datastore
go-ds-badger Travis CI codecov a badgerdb based datastore
Namesys
go-ipns Travis CI codecov IPNS datastructures and validation logic
Repo
go-fs-lock Travis CI codecov lockfile management functions
fs-repo-migrations Travis CI codecov repo migrations
IPLD
go-block-format Travis CI codecov block interfaces and implementations
go-ipfs-blockstore Travis CI codecov blockstore interfaces and implementations
go-ipld-format Travis CI codecov IPLD interfaces
go-ipld-cbor Travis CI codecov IPLD-CBOR implementation
go-ipld-git Travis CI codecov IPLD-Git implementation
go-merkledag Travis CI codecov IPLD-Merkledag implementation (and then some)
Commands
go-ipfs-cmds Travis CI codecov CLI & HTTP commands library
go-ipfs-files Travis CI codecov CLI & HTTP commands library
go-ipfs-api Travis CI codecov an old, stable shell for the IPFS HTTP API
go-ipfs-http-client Travis CI codecov a new, unstable shell for the IPFS HTTP API
interface-go-ipfs-core Travis CI codecov core go-ipfs API interface definitions
Metrics & Logging
go-metrics-interface Travis CI codecov metrics collection interfaces
go-metrics-prometheus Travis CI codecov prometheus-backed metrics collector
go-log Travis CI codecov logging framework
Generics/Utils
go-ipfs-routing Travis CI codecov routing (content, peer, value) helpers
go-ipfs-util Travis CI codecov the kitchen sink
go-ipfs-addr Travis CI codecov utility functions for parsing IPFS multiaddrs

For brevity, we've omitted most go-libp2p, go-ipld, and go-multiformats packages. These package tables can be found in their respective project's READMEs:

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium: Good to have, but can wait until someone steps updif/easySomeone with a little familiarity can pick upeffort/hoursEstimated to take one or several hours

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions