Skip to content

Commit d195f6d

Browse files
authored
docs(readme): various updates for clarity (#171)
* Various README updates for clarity Moved CODEOWNERS under docs for discoverability Added @ipfs/kubo-maintainters as default codeowner for clarity Added TOC Added more notes on motivation and scope. Linked to examples. * Making clear that go-libipfs != IPFS
1 parent e7aa6a1 commit d195f6d

File tree

2 files changed

+48
-5
lines changed

2 files changed

+48
-5
lines changed

README.md

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,26 @@ go-libipfs 🍌
1212
[![Go Docs](https://img.shields.io/badge/godoc-reference-blue.svg)](https://pkg.go.dev/github.com/ipfs/go-libipfs)
1313
[![codecov](https://codecov.io/gh/ipfs/go-libipfs/branch/main/graph/badge.svg?token=9eG7d8fbCB)](https://codecov.io/gh/ipfs/go-libipfs)
1414

15-
##
15+
<!-- TOC -->
1616

17-
Go-libips is a component library for building IPFS applications and implementations in Go.
17+
- [About](#about)
18+
- [Motivation](#motivation)
19+
- [What kind of components does go-libipfs have?](#what-kind-of-components-does-go-libipfs-have)
20+
- [Does go-libipfs == IPFS?](#does-go-libipfs--ipfs)
21+
- [Is everything related to IPFS in the Go ecosystem in this repo?](#is-everything-related-to-ipfs-in-the-go-ecosystem-in-this-repo)
22+
- [Getting started](#getting-started)
23+
- [Should I add my IPFS component to go-libipfs?](#should-i-add-my-ipfs-component-to-go-libipfs)
24+
- [Help](#help)
25+
- [Governance and Access](#governance-and-access)
26+
- [Release Process](#release-process)
27+
- [Related Items](#related-items)
28+
- [License](#license)
29+
30+
<!-- /TOC -->
31+
32+
## About
33+
34+
go-libips is a component library for building IPFS applications and implementations in Go.
1835

1936
Some scenarios in which you may find go-libipfs helpful:
2037

@@ -23,7 +40,15 @@ Some scenarios in which you may find go-libipfs helpful:
2340
* You want to reuse some components of IPFS such as its Kademlia DHT, Bitswap, data encoding, etc.
2441
* You want to experiment with IPFS
2542

26-
Go-libipfs powers [Kubo](https://github.com/ipfs/kubo), which is the most popular IPFS implementation, so its code has been battle-tested on the IPFS network for years, and is well-understood by the community.
43+
go-libipfs powers [Kubo](https://github.com/ipfs/kubo), which is [the most popular IPFS implementation](https://github.com/protocol/network-measurements/tree/master/reports),
44+
so its code has been battle-tested on the IPFS network for years, and is well-understood by the community.
45+
46+
### Motivation
47+
**TL;DR** The goal of this repo is to help people build things. Previously users struggled to find existing useful code or to figure out how to use what they did find. We observed many running Kubo and using its HTTP RPC API. This repo aims to do better. We're taking the libraries that many were already effectively relying on in production and making them more easily discoverable and usable.
48+
49+
The maintainers primarily aim to help people trying to build with IPFS in Go that were previously either giving up or relying on the [Kubo HTTP RPC API](https://docs.ipfs.tech/reference/kubo/rpc/). Some of these people will end up being better served by IPFS tooling in other languages (e.g., Javascript, Rust, Java, Python), but for those who are either looking to write in Go or to leverage the set of IPFS tooling we already have in Go we’d like to make their lives easier.
50+
51+
We’d also like to make life easier on ourselves as the maintainers by reducing the maintenance burden that comes from being the owners on [many repos](https://github.com/ipfs/kubo/issues/8543) and then use that time to contribute more to the community in the form of easier to use libraries, better implementations, improved protocols, new protocols, etc.
2752

2853
## What kind of components does go-libipfs have?
2954

@@ -37,8 +62,15 @@ Go-libipfs includes high-quality components useful for interacting with IPFS pro
3762

3863
Go-libipfs aims to provide a cohesive interface into these components. Note that not all of the underlying components necessarily reside in this respository.
3964

65+
### Does go-libipfs == IPFS?
66+
No. This repo houses some IPFS functionality written in Go that has been useful in practice, and is maintained by a group that has long term commitments to the IPFS project
67+
68+
### Is everything related to IPFS in the Go ecosystem in this repo?
69+
70+
No. Not everything related to IPFS is intended to be in go-libipfs. View it as a starter toolbox (potentially among multiple). If you’d like to build an IPFS implementation with Go, here are some tools you might want that are maintained by a group that has long term commitments to the IPFS project. There are certainly repos that others maintainer that aren't included here (e.g., ipfs/go-car) which are still useful to IPFS implementations. It's expected and fine for new IPFS functionality to be developed that won't be part of go-libipfs.
71+
4072
## Getting started
41-
TODO
73+
See [examples](./examples/README.md).
4274

4375
## Should I add my IPFS component to go-libipfs?
4476
We happily accept external contributions! However, go-libipfs maintains a high quality bar, so code accepted into go-libipfs must meet some minimum maintenance criteria:
@@ -59,8 +91,16 @@ If you have some experimental component that you think would benefit the IPFS co
5991

6092
## Help
6193

62-
If you have questions, feel free to open an issue. You can also find the go-libipfs maintainers in [Slack](https://filecoin.io/slack/) at #go-libipfs-maintainers.
94+
If you have questions, feel free to open an issue. You can also find the go-libipfs maintainers in [Filecoin Slack](https://filecoin.io/slack/) at #go-libipfs-maintainers. (If you would like to engage via IPFS Discord or ipfs.io Matrix, please drop into the #ipfs-implementers channel/room or file an issue, and we'll get bridging from #go-libipfs-maintainers to these other chat platforms.)
95+
96+
## Governance and Access
97+
See [CODEOWNERS](./docs/CODEOWNERS) for the current maintainers list. Governance for graduating additional maintainers hasn't been established. Repo permissions are all managed through [ipfs/github-mgmt](https://github.com/ipfs/github-mgmt).
98+
99+
## Release Process
100+
To be documented: https://github.com/ipfs/go-libipfs/issues/170
63101

102+
## Related Items
103+
* [Initial proposal for "Consolidate IPFS Repositories" that spawned this project](https://github.com/ipfs/kubo/issues/8543)
64104

65105
## License
66106

.github/CODEOWNERS renamed to docs/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,8 @@
22
# request that modifies code that they own. Code owners are not automatically
33
# requested to review draft pull requests.
44

5+
# Deafult
6+
* @ipfs/kubo-maintainers
7+
58
# HTTP Gateway
69
gateway/ @lidel @hacdias

0 commit comments

Comments
 (0)