Skip to content

Commit

Permalink
initial work
Browse files Browse the repository at this point in the history
  • Loading branch information
jimmale committed Jan 2, 2022
1 parent 42d67cb commit 6036132
Show file tree
Hide file tree
Showing 11 changed files with 476 additions and 2 deletions.
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "gomod" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"
25 changes: 25 additions & 0 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Go

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:

build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.17

- name: Build
run: mkdir -p ./licensing/my-licenses && touch ./licensing/my-licenses/make_embedFS_happy && go build -v -buildmode=pie -ldflags "-s -w" -o ./subspace ./cmd/main.go

- name: Test
run: mkdir -p ./licensing/my-licenses && touch ./licensing/my-licenses/make_embedFS_happy && go test -v ./...
48 changes: 47 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*.dll
*.so
*.dylib
subspace

# Test binary, built with `go test -c`
*.test
Expand All @@ -12,4 +13,49 @@
*.out

# Dependency directories (remove the comment below to include it)
# vendor/
vendor/

# OSX Cruft
**/.DS_Store

### Via https://stackoverflow.com/a/39568390
### JetBrains ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff:
.idea/workspace.xml
.idea/tasks.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml
# Sensitive or high-churn files:
.idea/dataSources.ids
.idea/dataSources.xml
.idea/dataSources.local.xml
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml

## File-based project format:
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

### JetBrains Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721

*.iml
# modules.xml
# .idea/misc.xml
# *.ipr
dist/


licensing/my-licenses
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

63 changes: 62 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,62 @@
# subspace
# subspace
File sharing application.

## Supported Platforms

| OS | 386 | amd64 | arm6 | arm64 |
| --- | --- | ---- | --- | ---- |
| Linux |||||
| Windows ||| ||
| MacOS | || ||

## Building
Requirements:
- Golang 1.16+
- [Goreleaser](https://goreleaser.com/) (optional, to build linux packages)

```shell
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
```

### Build packages
`goreleaser release --rm-dist --snapshot`

## Dependencies
### Buildtime

### Runtime
- quic-go github.com/lucas-clemente/quic-go

## TODO

- 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
7 changes: 7 additions & 0 deletions cmd/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}
5 changes: 5 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module github.com/jimmale/subspace

go 1.16

require github.com/lucas-clemente/quic-go v0.24.0
Loading

0 comments on commit 6036132

Please sign in to comment.