Skip to content

Commit 5a2c4a3

Browse files
committed
feat: Über Migration (and Boxo rename)
Include rename from: github.com/ipfs/go-libipfs => github.com/ipfs/boxo Migrated repos: - github.com/ipfs/interface-go-ipfs-core => ./coreiface - github.com/ipfs/go-pinning-service-http-client => ./pinning/remote/client - github.com/ipfs/go-path => ./path - github.com/ipfs/go-namesys => ./namesys - github.com/ipfs/go-mfs => ./mfs - github.com/ipfs/go-ipfs-provider => ./provider - github.com/ipfs/go-ipfs-pinner => ./pinning/pinner - github.com/ipfs/go-ipfs-keystore => ./keystore - github.com/ipfs/go-filestore => ./filestore - github.com/ipfs/go-ipns => ./ipns - github.com/ipfs/go-blockservice => ./blockservice - github.com/ipfs/go-ipfs-chunker => ./chunker - github.com/ipfs/go-fetcher => ./fetcher - github.com/ipfs/go-ipfs-blockstore => ./blockstore - github.com/ipfs/go-ipfs-posinfo => ./filestore/posinfo - github.com/ipfs/go-ipfs-util => ./util - github.com/ipfs/go-ipfs-ds-help => ./datastore/dshelp - github.com/ipfs/go-verifcid => ./verifcid - github.com/ipfs/go-ipfs-exchange-offline => ./exchange/offline - github.com/ipfs/go-ipfs-routing => ./routing - github.com/ipfs/go-ipfs-exchange-interface => ./exchange - github.com/ipfs/go-unixfs => ./ipld/unixfs - github.com/ipfs/go-merkledag => ./ipld/merkledag - github.com/ipld/go-car => ./ipld/car Fixes #215 Updates #202
25 parents 664b3e5 + 00087bb + ae9364a + c2c98d0 + eeceee5 + b180aa1 + 2c8dec8 + 89bd5ed + b739af1 + a8baf45 + fbb6fad + 8aec54e + 7f24945 + 8169e7a + bc3a4d7 + 6199506 + 504dcf9 + a8700eb + cd0d3b1 + 62bb938 + 9f11814 + 54d20f0 + 18b8f6f + 790ce94 + c270c83 commit 5a2c4a3

File tree

492 files changed

+66653
-1659
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

492 files changed

+66653
-1659
lines changed

.github/workflows/gateway-sharness.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
with:
2929
repository: ipfs/kubo
3030
path: kubo
31+
ref: 51570ebbb5dfa423e03d2d329de0252b924ad30d
3132
- name: Install Missing Tools
3233
run: sudo apt install -y socat net-tools fish libxml2-utils
3334
- name: Restore Go Cache
@@ -47,5 +48,5 @@ jobs:
4748
run: find . -maxdepth 1 -name "*gateway*.sh" -print0 | xargs -0 -I {} bash -c "echo {}; {}"
4849
working-directory: kubo/test/sharness
4950
- name: Run Kubo CLI Tests
50-
run: go test -v -run=Gateway .
51+
run: go test -run=Gateway .
5152
working-directory: kubo/test/cli

.github/workflows/go-test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
# Use -coverpkg=./..., so that we include cross-package coverage.
4747
# If package ./A imports ./B, and ./A's tests also cover ./B,
4848
# this means ./B's coverage will be significantly higher than 0%.
49-
run: go test -v -shuffle=on -coverprofile=module-coverage.txt -coverpkg=./... ./...
49+
run: go test -shuffle=on -coverprofile=module-coverage.txt -coverpkg=./... ./...
5050
- name: Run tests (32 bit)
5151
# can't run 32 bit tests on OSX.
5252
if: matrix.os != 'macos' &&
@@ -58,14 +58,14 @@ jobs:
5858
with:
5959
run: |
6060
export "PATH=$PATH_386:$PATH"
61-
go test -v -shuffle=on ./...
61+
go test -shuffle=on ./...
6262
- name: Run tests with race detector
6363
# speed things up. Windows and OSX VMs are slow
6464
if: matrix.os == 'ubuntu' &&
6565
contains(fromJSON(steps.config.outputs.json).skipOSes, matrix.os) == false
6666
uses: protocol/multiple-go-modules@v1.2
6767
with:
68-
run: go test -v -race ./...
68+
run: go test -race ./...
6969
- name: Collect coverage files
7070
shell: bash
7171
run: echo "COVERAGES=$(find . -type f -name 'module-coverage.txt' | tr -s '\n' ',' | sed 's/,$//')" >> $GITHUB_ENV

.github/workflows/test-examples.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
- name: Run tests
3838
uses: protocol/multiple-go-modules@v1.2
3939
with:
40-
run: go test -v -shuffle=on ./...
40+
run: go test -shuffle=on ./...
4141
- name: Run tests (32 bit)
4242
if: ${{ matrix.os != 'macos' }} # can't run 32 bit tests on OSX.
4343
uses: protocol/multiple-go-modules@v1.2
@@ -46,9 +46,9 @@ jobs:
4646
with:
4747
run: |
4848
export "PATH=${{ env.PATH_386 }}:$PATH"
49-
go test -v -shuffle=on ./...
49+
go test -shuffle=on ./...
5050
- name: Run tests with race detector
5151
if: ${{ matrix.os == 'ubuntu' }} # speed things up. Windows and OSX VMs are slow
5252
uses: protocol/multiple-go-modules@v1.2
5353
with:
54-
run: go test -v -race ./...
54+
run: go test -race ./...

README.md

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
<h1 align="center">
2-
go-libipfs 🍌
2+
Boxo 🍌
33
<br>
4-
<img src="https://raw.githubusercontent.com/ipfs/go-libipfs/main/logo.svg" alt="go-libipfs logo" title="go-libipfs logo" width="200">
4+
<img src="https://raw.githubusercontent.com/ipfs/boxo/main/logo.svg" alt="Boxo logo" title="Boxo logo" width="200">
55
<br>
66
</h1>
77
<p align="center" style="font-size: 1.2rem;">A library for building IPFS applications and implementations.</p>
88

99
<hr />
1010

11-
[![Go Test](https://github.com/ipfs/go-libipfs/actions/workflows/go-test.yml/badge.svg)](https://github.com/ipfs/go-libipfs/actions/workflows/go-test.yml)
12-
[![Go Docs](https://img.shields.io/badge/godoc-reference-blue.svg)](https://pkg.go.dev/github.com/ipfs/go-libipfs)
13-
[![codecov](https://codecov.io/gh/ipfs/go-libipfs/branch/main/graph/badge.svg?token=9eG7d8fbCB)](https://codecov.io/gh/ipfs/go-libipfs)
11+
[![Go Test](https://github.com/ipfs/boxo/actions/workflows/go-test.yml/badge.svg)](https://github.com/ipfs/boxo/actions/workflows/go-test.yml)
12+
[![Go Docs](https://img.shields.io/badge/godoc-reference-blue.svg)](https://pkg.go.dev/github.com/ipfs/boxo)
13+
[![codecov](https://codecov.io/gh/ipfs/boxo/branch/main/graph/badge.svg?token=9eG7d8fbCB)](https://codecov.io/gh/ipfs/boxo)
1414

1515
<!-- TOC -->
1616

1717
- [About](#about)
1818
- [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)
19+
- [What kind of components does Boxo have?](#what-kind-of-components-does-boxo-have)
20+
- [Does Boxo == IPFS?](#does-boxo--ipfs)
2121
- [Is everything related to IPFS in the Go ecosystem in this repo?](#is-everything-related-to-ipfs-in-the-go-ecosystem-in-this-repo)
2222
- [Getting started](#getting-started)
23-
- [Should I add my IPFS component to go-libipfs?](#should-i-add-my-ipfs-component-to-go-libipfs)
23+
- [Should I add my IPFS component to Boxo?](#should-i-add-my-ipfs-component-to-boxo)
2424
- [Help](#help)
2525
- [Governance and Access](#governance-and-access)
2626
- [Release Process](#release-process)
@@ -31,75 +31,75 @@ go-libipfs 🍌
3131

3232
## About
3333

34-
go-libipfs is a component library for building IPFS applications and implementations in Go.
34+
Boxo is a component library for building IPFS applications and implementations in Go.
3535

36-
Some scenarios in which you may find go-libipfs helpful:
36+
Some scenarios in which you may find Boxo helpful:
3737

3838
* You are building an application that interacts with the IPFS network
3939
* You are building an IPFS implementation
4040
* You want to reuse some components of IPFS such as its Kademlia DHT, Bitswap, data encoding, etc.
4141
* You want to experiment with IPFS
4242

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),
43+
Boxo powers [Kubo](https://github.com/ipfs/kubo), which is [the most popular IPFS implementation](https://github.com/protocol/network-measurements/tree/master/reports),
4444
so its code has been battle-tested on the IPFS network for years, and is well-understood by the community.
4545

4646
### Motivation
4747
**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.
4848

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.
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.
5050

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.
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.
5252

53-
Go-libipfs is not exhaustive nor comprehensive--there are plenty of useful IPFS protocols, specs, libraries, etc. that are not in go-libipfs. The goal of go-libipfs is to provide cohesive and well-maintained components for common IPFS use cases.
53+
Boxo is not exhaustive nor comprehensive--there are plenty of useful IPFS protocols, specs, libraries, etc. that are not in Boxo. The goal of Boxo is to provide cohesive and well-maintained components for common IPFS use cases.
5454

55-
## What kind of components does go-libipfs have?
55+
## What kind of components does Boxo have?
5656

57-
Go-libipfs includes high-quality components useful for interacting with IPFS protocols, public and private IPFS networks, and content-addressed data, such as:
57+
Boxo includes high-quality components useful for interacting with IPFS protocols, public and private IPFS networks, and content-addressed data, such as:
5858

5959
- Content routing (DHT, delegated content routing, providing)
6060
- Data transfer (gateways, Bitswap, incremental verification)
6161
- Naming and mutability (name resolution, IPNS)
6262
- Interacting with public and private IPFS networks
6363
- Working with content-addressed data
6464

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

67-
### Does go-libipfs == IPFS?
67+
### Does Boxo == IPFS?
6868
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
6969

7070
### Is everything related to IPFS in the Go ecosystem in this repo?
7171

72-
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.
72+
No. Not everything related to IPFS is intended to be in Boxo. 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 Boxo.
7373

7474
## Getting started
7575
See [examples](./examples/README.md).
7676

77-
## Should I add my IPFS component to go-libipfs?
78-
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:
77+
## Should I add my IPFS component to Boxo?
78+
We happily accept external contributions! However, Boxo maintains a high quality bar, so code accepted into Boxo must meet some minimum maintenance criteria:
7979

8080
* Actively maintained
8181
* Must be actively used by, or will be included in software that is actively used by, a significant number of users or production systems. Code that is not actively used cannot be properly maintained.
82-
* Must have multiple engineers who are willing and able to maintain the relevant code in go-libipfs for a long period of time.
83-
* If either of these changes, go-libipfs maintainers will consider removing the component from go-libipfs.
82+
* Must have multiple engineers who are willing and able to maintain the relevant code in Boxo for a long period of time.
83+
* If either of these changes, Boxo maintainers will consider removing the component from Boxo.
8484
* Adequately tested
8585
* At least with unit tests
8686
* Ideally also including integration tests with other components
8787
* Adequately documented
8888
* Godocs at minimum
8989
* Complex components should have their own doc.go or README.md describing the component, its use cases, tradeoffs, design rationale, etc.
90-
* If the maintainers are not go-libipfs maintainers, then the component must include a CODEOWNERS file with at least two code owners who can commit to reviewing PRs
90+
* If the maintainers are not Boxo maintainers, then the component must include a CODEOWNERS file with at least two code owners who can commit to reviewing PRs
9191

92-
If you have some experimental component that you think would benefit the IPFS community, we suggest you build the component in your own repository until it's clear that there's community demand for it, and then open an issue/PR in this repository to discuss including it in go-libipfs.
92+
If you have some experimental component that you think would benefit the IPFS community, we suggest you build the component in your own repository until it's clear that there's community demand for it, and then open an issue/PR in this repository to discuss including it in Boxo.
9393

9494
## Help
9595

96-
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.)
96+
If you have questions, feel free to open an issue. You can also find the Boxo maintainers in [Filecoin Slack](https://filecoin.io/slack/) at #Boxo-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 #Boxo-maintainers to these other chat platforms.)
9797

9898
## Governance and Access
9999
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).
100100

101101
## Release Process
102-
To be documented: https://github.com/ipfs/go-libipfs/issues/170
102+
To be documented: https://github.com/ipfs/boxo/issues/170
103103

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

bitswap/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ wants those blocks.
4040
```golang
4141
import (
4242
"context"
43-
bitswap "github.com/ipfs/go-libipfs/bitswap"
44-
bsnet "github.com/ipfs/go-libipfs/bitswap/network"
43+
bitswap "github.com/ipfs/boxo/bitswap"
44+
bsnet "github.com/ipfs/boxo/bitswap/network"
4545
blockstore "github.com/ipfs/go-ipfs-blockstore"
4646
"github.com/libp2p/go-libp2p-core/routing"
4747
"github.com/libp2p/go-libp2p-core/host"

bitswap/benchmarks_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ import (
1212
"testing"
1313
"time"
1414

15-
"github.com/ipfs/go-libipfs/bitswap/internal/testutil"
16-
blocks "github.com/ipfs/go-libipfs/blocks"
15+
"github.com/ipfs/boxo/bitswap/internal/testutil"
16+
blocks "github.com/ipfs/boxo/blocks"
1717
protocol "github.com/libp2p/go-libp2p/core/protocol"
1818

19+
"github.com/ipfs/boxo/bitswap"
20+
bsnet "github.com/ipfs/boxo/bitswap/network"
21+
testinstance "github.com/ipfs/boxo/bitswap/testinstance"
22+
tn "github.com/ipfs/boxo/bitswap/testnet"
23+
mockrouting "github.com/ipfs/boxo/routing/mock"
1924
cid "github.com/ipfs/go-cid"
2025
delay "github.com/ipfs/go-ipfs-delay"
21-
mockrouting "github.com/ipfs/go-ipfs-routing/mock"
22-
"github.com/ipfs/go-libipfs/bitswap"
23-
bsnet "github.com/ipfs/go-libipfs/bitswap/network"
24-
testinstance "github.com/ipfs/go-libipfs/bitswap/testinstance"
25-
tn "github.com/ipfs/go-libipfs/bitswap/testnet"
2626
)
2727

2828
type fetchFunc func(b *testing.B, bs *bitswap.Bitswap, ks []cid.Cid)

bitswap/bitswap.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ import (
44
"context"
55
"fmt"
66

7-
"github.com/ipfs/go-libipfs/bitswap/client"
8-
"github.com/ipfs/go-libipfs/bitswap/internal/defaults"
9-
"github.com/ipfs/go-libipfs/bitswap/message"
10-
"github.com/ipfs/go-libipfs/bitswap/network"
11-
"github.com/ipfs/go-libipfs/bitswap/server"
12-
"github.com/ipfs/go-libipfs/bitswap/tracer"
7+
"github.com/ipfs/boxo/bitswap/client"
8+
"github.com/ipfs/boxo/bitswap/internal/defaults"
9+
"github.com/ipfs/boxo/bitswap/message"
10+
"github.com/ipfs/boxo/bitswap/network"
11+
"github.com/ipfs/boxo/bitswap/server"
12+
"github.com/ipfs/boxo/bitswap/tracer"
1313
"github.com/ipfs/go-metrics-interface"
1414

15+
blocks "github.com/ipfs/boxo/blocks"
16+
blockstore "github.com/ipfs/boxo/blockstore"
17+
exchange "github.com/ipfs/boxo/exchange"
1518
"github.com/ipfs/go-cid"
16-
blockstore "github.com/ipfs/go-ipfs-blockstore"
17-
exchange "github.com/ipfs/go-ipfs-exchange-interface"
18-
blocks "github.com/ipfs/go-libipfs/blocks"
1919
logging "github.com/ipfs/go-log"
2020
"github.com/libp2p/go-libp2p/core/peer"
2121

bitswap/bitswap_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ import (
99
"testing"
1010
"time"
1111

12+
"github.com/ipfs/boxo/bitswap"
13+
bsmsg "github.com/ipfs/boxo/bitswap/message"
14+
"github.com/ipfs/boxo/bitswap/server"
15+
testinstance "github.com/ipfs/boxo/bitswap/testinstance"
16+
tn "github.com/ipfs/boxo/bitswap/testnet"
17+
blocks "github.com/ipfs/boxo/blocks"
18+
"github.com/ipfs/boxo/internal/test"
19+
mockrouting "github.com/ipfs/boxo/routing/mock"
1220
cid "github.com/ipfs/go-cid"
1321
detectrace "github.com/ipfs/go-detect-race"
1422
blocksutil "github.com/ipfs/go-ipfs-blocksutil"
1523
delay "github.com/ipfs/go-ipfs-delay"
16-
mockrouting "github.com/ipfs/go-ipfs-routing/mock"
1724
ipld "github.com/ipfs/go-ipld-format"
18-
"github.com/ipfs/go-libipfs/bitswap"
19-
bsmsg "github.com/ipfs/go-libipfs/bitswap/message"
20-
"github.com/ipfs/go-libipfs/bitswap/server"
21-
testinstance "github.com/ipfs/go-libipfs/bitswap/testinstance"
22-
tn "github.com/ipfs/go-libipfs/bitswap/testnet"
23-
blocks "github.com/ipfs/go-libipfs/blocks"
24-
"github.com/ipfs/go-libipfs/internal/test"
2525
tu "github.com/libp2p/go-libp2p-testing/etc"
2626
p2ptestutil "github.com/libp2p/go-libp2p-testing/netutil"
2727
peer "github.com/libp2p/go-libp2p/core/peer"

bitswap/client/bitswap_with_sessions_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ import (
66
"testing"
77
"time"
88

9+
"github.com/ipfs/boxo/bitswap"
10+
"github.com/ipfs/boxo/bitswap/client/internal/session"
11+
testinstance "github.com/ipfs/boxo/bitswap/testinstance"
12+
tn "github.com/ipfs/boxo/bitswap/testnet"
13+
blocks "github.com/ipfs/boxo/blocks"
14+
"github.com/ipfs/boxo/internal/test"
15+
mockrouting "github.com/ipfs/boxo/routing/mock"
916
cid "github.com/ipfs/go-cid"
1017
blocksutil "github.com/ipfs/go-ipfs-blocksutil"
1118
delay "github.com/ipfs/go-ipfs-delay"
12-
mockrouting "github.com/ipfs/go-ipfs-routing/mock"
13-
"github.com/ipfs/go-libipfs/bitswap"
14-
"github.com/ipfs/go-libipfs/bitswap/client/internal/session"
15-
testinstance "github.com/ipfs/go-libipfs/bitswap/testinstance"
16-
tn "github.com/ipfs/go-libipfs/bitswap/testnet"
17-
blocks "github.com/ipfs/go-libipfs/blocks"
18-
"github.com/ipfs/go-libipfs/internal/test"
1919
tu "github.com/libp2p/go-libp2p-testing/etc"
2020
)
2121

0 commit comments

Comments
 (0)