File sharing application.
OS | 386 | amd64 | arm6 | arm64 |
---|---|---|---|---|
Linux | ✅ | ✅ | ✅ | ✅ |
Windows | ✅ | ✅ | ✅ | |
MacOS | ✅ | ✅ |
Requirements:
- Golang 1.16+
- Goreleaser (optional, to build linux packages)
go test ./...
mkdir -p ./licensing/my-licenses
touch ./licensing/my-licenses/make_embedFS_happy
go-licenses save github.com/jimmale/subspace --force --save_path="licensing/my-licenses"
go build -buildmode=pie -ldflags "-s -w" -o ./subspace ./cmd/main.go
goreleaser release --rm-dist --snapshot
Library | License | Purpose |
---|---|---|
Sirupsen/Logrus | MIT | Pretty Logging |
urfave/cli/v2 | MIT | CLI args parsing, configuration file reading |
lucas-clemente/quic-go | MIT | Peer Connection |
- Peer discovery
- Cache
- Out of Band
- Bittorrent Trackers
- LAN multicast
- DHT
- Peer Exchange
- Cert Management
- Generate new Cert
- Keep Peer Certs
- Trust Peer Certs
- Network Management
- UPnP Port Forwarding
- Transfers
- Transfer Resume
- Compression
- BT-style sharing (eg if Alice and Bob are downloading from Charlie, Alice and Bob will share chunks of the file amongst themselves)
- CI/CD
- Build in licenses for
--license
invocation - Semantic Versioning
- Include Buildinfo (git revision, release version, GOOS, GOARCH, Build Time)
- RPM Packages
- Deb Packages
- Windows EXEs
- OSX DMG
- Build in licenses for