All Projects → cronokirby → haze

cronokirby / haze

Licence: MIT license
A bittorrent client, for learning purposes

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to haze

Shareaza
Shareaza is a peer-to-peer client for Windows that allows you to download any file-type found on several popular P2P networks.
Stars: ✭ 103 (+0%)
Mutual labels:  bittorrent, bittorrent-client
exatorrent
Easy to Use Torrent Client. Can be hosted in Cloud. Files can be streamed in Browser/Media Player.
Stars: ✭ 1,557 (+1411.65%)
Mutual labels:  bittorrent, bittorrent-client
CuteTorrent
BitTorrent client based on libtorrent-rasterbar with user-friendly interface
Stars: ✭ 27 (-73.79%)
Mutual labels:  bittorrent, bittorrent-client
torrent client
A Bit Torrent downloader written in Crystal.
Stars: ✭ 23 (-77.67%)
Mutual labels:  bittorrent-client, bittorrent-protocol
ut pex
Implementation of ut_pex bittorrent protocol (PEX) for webtorrent
Stars: ✭ 54 (-47.57%)
Mutual labels:  bittorrent, bittorrent-protocol
Picotorrent
A tiny, hackable BitTorrent client.
Stars: ✭ 1,695 (+1545.63%)
Mutual labels:  bittorrent, bittorrent-client
Qbittorrent
qBittorrent BitTorrent client
Stars: ✭ 13,738 (+13237.86%)
Mutual labels:  bittorrent, bittorrent-client
transmitter
A WebExtension for the Transmission BitTorrent client
Stars: ✭ 72 (-30.1%)
Mutual labels:  bittorrent-client
IMDb-Scout-Mod
Auto search for movie/series on torrent, usenet, ddl, subtitles, streaming, predb and other sites. Adds links to IMDb pages from hundreds various sites. Adds movies/series to Radarr/Sonarr. Adds external ratings from Metacritic, Rotten Tomatoes, Letterboxd, Douban, Allocine. Media Server indicators for Plex, Jellyfin, Emby. Dark theme/style for …
Stars: ✭ 177 (+71.84%)
Mutual labels:  bittorrent
dottorrent
High-level Python 3 library for creating .torrent files
Stars: ✭ 70 (-32.04%)
Mutual labels:  bittorrent
mad-torrent
Delphi bittorrent protocol implementation
Stars: ✭ 30 (-70.87%)
Mutual labels:  bittorrent
Zx Bt
一个基于BitTorrent协议的DHT磁力嗅探器,并基于Elasticsearch存储/检索Torrent的Metadata信息
Stars: ✭ 244 (+136.89%)
Mutual labels:  bittorrent
pybtracker
UDP BitTorrent tracker written in Python 3.5 using co-routines and asyncio.
Stars: ✭ 46 (-55.34%)
Mutual labels:  bittorrent
dhtrobot
A kademila DHT implement in go
Stars: ✭ 40 (-61.17%)
Mutual labels:  bittorrent
torrent-webseed-creator
Webseeded torrent creator using GitHub Actions
Stars: ✭ 54 (-47.57%)
Mutual labels:  bittorrent
magnet2torrent
Turn a bittorrent magnet link into a .torrent file
Stars: ✭ 45 (-56.31%)
Mutual labels:  bittorrent
bthello
Python3 DHT 磁力种子爬虫 种子解析 种子搜索 演示地址
Stars: ✭ 43 (-58.25%)
Mutual labels:  bittorrent
trystero
🤝 Serverless WebRTC matchmaking for painless P2P — Make any site multiplayer in a few lines — Use BitTorrent, IPFS, or Firebase
Stars: ✭ 512 (+397.09%)
Mutual labels:  bittorrent
aria2-bt-tracker
auto update aria2 bt-tracker
Stars: ✭ 35 (-66.02%)
Mutual labels:  bittorrent
CWP-Utilities
Combined Windows Privacy Utilities | Hosts file updater, block list manager, and more. Open source tools for Windows users, to help ensure privacy & security. Block ads, spyware domains, and other malicious activity/traffic, all through a simple interface.
Stars: ✭ 63 (-38.83%)
Mutual labels:  bittorrent

haze

MIT license

Small bittorrent client, written in Haskell.

The main goal of this project is to provide a clear implementation of the Bittorrent protocol in Haskell. Providing good performance is also something that would be good to achieve, but reaching the completeness of something like libtorrent or transmission is out of the scope of this project.

Examples

Here's a gif of the progress display

Usage

Usage: haze TORRENT_FILE [-o|--output-dir DIRECTORY] [-l|--log-file LOG_FILE]
            [-p|--port PORT] [-v|--version]
  Download the torrent in TORRENT_FILE

Available options:
  TORRENT_FILE             The torrent file to download
  -o,--output-dir DIRECTORY
                           The directory to download the torrent to
  -l,--log-file LOG_FILE   Logging will happen to this file if set
  -p,--port PORT           The port to listen for incoming connections on
  -h,--help                Show this help text
  -v,--version             Display what version the program is using

After launching haze with a torrent, it will show a progress display with ongoing information on the status of the torrent. Once the torrent has finished downloading, haze will continue to seed it until the program is cancelled (using CTRL-C is fine).

By default, haze will output the torrent files to the current directory, although if a torrent has multiple files, it will usually define a relative root, and files will end up there instead. Using a folder for the output is recommended for single file torrents, since many small files are generated while downloading the torrent, before they get glued together to make up the large file. These files might otherwise temporarily clutter up a folder you want to keep clean, so be wary of that.

At the moment, haze only supports downloading a single torrent file at once.

haze can perform logging to a file if specified, otherwise no logging is done. The logging exists mainly for debug purposes, although it might be interesting to look at to gleam some more about how the program works :)

Resources

The main resource I used for learning about the specification is here: https://wiki.theory.org/index.php/BitTorrentSpecification

The above page is enough to understand the spec, but it takes a few reads to grok all the information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].