Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/direct-connect/go-dcpp
Hybrid Direct Connect hub written in Go.
https://github.com/direct-connect/go-dcpp
adc dchub direct-connect file-sharing golang p2p
Last synced: about 1 month ago
JSON representation
Hybrid Direct Connect hub written in Go.
- Host: GitHub
- URL: https://github.com/direct-connect/go-dcpp
- Owner: direct-connect
- License: bsd-3-clause
- Created: 2018-12-11T04:58:02.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-05T16:57:20.000Z (almost 5 years ago)
- Last Synced: 2024-08-02T01:23:02.839Z (4 months ago)
- Topics: adc, dchub, direct-connect, file-sharing, golang, p2p
- Language: Go
- Homepage:
- Size: 817 KB
- Stars: 36
- Watchers: 9
- Forks: 9
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - direct-connect/go-dcpp - Hybrid Direct Connect hub written in Go. (Go)
README
# GoHub
[![Github Release](https://img.shields.io/github/release/direct-connect/go-dcpp.svg)](https://github.com/direct-connect/go-dcpp/releases)
Direct Connect hub implementation for ADC and NMDC protocols (and beyond).
Requires Go 1.12+.
**Features:**
- Fully multi-threaded.
- Support NMDC, ADC and IRC users on the same hub.
- Uses a single port for all protocols (protocol auto-detection).
- Search and chat between NMDC and ADC.
- Supports TLS for ADC (`adcs://`) and NMDC (`nmdcs://`).
- Automatic TLS certificate generation.
- HTTP(S) pinger support.
- User registration, profiles and operators.
- User commands.
- Chat rooms.
- Go plugins.
- LUA scripts.
- PtokaX LUA scripts support.
- Flood filters.**TODO:**
- Spam filters.
- Get certificates from LetsEncrypt.### Building on Linux
Download and install Go 1.12+ from [this page](https://golang.org/dl/),
or install it with Snap:```bash
# install the Snap package manager:
sudo apt install snapd
# install the latest stable Go version:
sudo snap install --classic go
```And build the hub binary:
```bash
go build ./cmd/go-hub
```### Building on Windows
Download and install Go 1.12+ from [this page](https://golang.org/dl/).
You may also need to install [Git](https://git-scm.com/download/win).To build the hub binary, run:
```bash
go build .\cmd\go-hub
```### Running the hub
First, run the hub configuration:
```
./go-hub init
```This will create a file called `hub.yml` with the default configuration.
To create a user with admin permissions:
```
./go-hub user add "Bob" "MyPass" root
```To run the hub:
```
./go-hub serve
```Check help for additional commands and flags:
```
./go-hub -h
```### Profiling
To enable performance profiling:
```
./go-hub serve --pprof
```A profiling endpoint will be available at http://localhost:6060/debug/pprof.
See [pprof](https://golang.org/pkg/net/http/pprof/) documentation for more details.
### License
BSD 3-Clause License