Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jorbush/gotorrent
A BitTorrent client implementation in Go
https://github.com/jorbush/gotorrent
bittorrent go golang p2p
Last synced: 21 days ago
JSON representation
A BitTorrent client implementation in Go
- Host: GitHub
- URL: https://github.com/jorbush/gotorrent
- Owner: jorbush
- Created: 2024-04-14T06:50:18.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-06-15T11:58:40.000Z (6 months ago)
- Last Synced: 2024-06-16T11:23:45.954Z (6 months ago)
- Topics: bittorrent, go, golang, p2p
- Language: Go
- Homepage:
- Size: 65.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GoTorrent
A BitTorrent client implementation in Go, designed to download files efficiently using the BitTorrent protocol.
https://github.com/jorbush/GoTorrent/assets/55429631/7a94b1c8-89bf-4831-8ff6-bf6baaf20fe2
## Requirements
- [Go](https://golang.org/doc/install)
## Installation
Run the following command to install the project dependencies:
```bash
make install
```## Usage UI
### Run the App
Run the client using the make command:
```bash
make start-ui
```You can drag and drop a torrent file into the app to start downloading the content or select a file using the `Browse` button.
Once the download is complete, the downloaded file will be saved in the `output` directory.
## Usage CLI
### Download a Torrent File
Download a torrent file, for example, the Debian installation image:
```bash
curl -o input/debian.torrent https://cdimage.debian.org/debian-cd/current/amd64/bt-cd/debian-12.5.0-amd64-netinst.iso.torrent
```
### Run CLIRun the client using the make command:
```bash
make start-cli
```This command will start the BitTorrent client, which will download the content of the torrent file saved in the `input` directory. For example, the Debian image.
### Output
The downloaded file will be saved in the output directory.
## Linting
Check the code for style issues:
```bash
make lint
```## References
- [BitTorrent Article](https://blog.jse.li/posts/torrent/)
- [The BitTorrent Protocol Specification](https://www.bittorrent.org/beps/bep_0003.html)