All Projects → DiegoRBaquero → uWebTorrentTracker

DiegoRBaquero / uWebTorrentTracker

Licence: MIT license
🔆 Simple, robust, WebTorrent tracker server implementation

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to uWebTorrentTracker

Bittorrent Tracker
🌊 Simple, robust, BitTorrent tracker (client & server) implementation
Stars: ✭ 1,184 (+1941.38%)
Mutual labels:  tracker, bittorrent, webtorrent
Torrent Discovery
Discover BitTorrent and WebTorrent peers
Stars: ✭ 177 (+205.17%)
Mutual labels:  tracker, bittorrent, webtorrent
Trackerslist
Updated list of public BitTorrent trackers
Stars: ✭ 31,704 (+54562.07%)
Mutual labels:  bittorrent, webtorrent, bittorrent-tracker
Wt Tracker
High-performance WebTorrent tracker
Stars: ✭ 144 (+148.28%)
Mutual labels:  tracker, bittorrent, webtorrent
pybtracker
UDP BitTorrent tracker written in Python 3.5 using co-routines and asyncio.
Stars: ✭ 46 (-20.69%)
Mutual labels:  tracker, bittorrent, bittorrent-tracker
Meantorrent
meanTorrent - MEAN.JS BitTorrent Private Tracker - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js, A BitTorrent Private Tracker CMS with Multilingual, and IRC announce support, CloudFlare support. Demo at:
Stars: ✭ 438 (+655.17%)
Mutual labels:  tracker, bittorrent
Trackerslistcollection
🎈 Updated daily! A list of popular BitTorrent Trackers! / 每天更新!全网热门 BT Tracker 列表!
Stars: ✭ 9,761 (+16729.31%)
Mutual labels:  tracker, bittorrent
videostream
Video Streaming site using Laravel and WebTorrent
Stars: ✭ 36 (-37.93%)
Mutual labels:  bittorrent, webtorrent
Unit3d Community Edition
🚀 A Next Generation Private Torrent Tracker (Community Edition)
Stars: ✭ 1,305 (+2150%)
Mutual labels:  tracker, bittorrent
haitou
Private Torrent Forum/Tracker in Portuguese BR (On Development now)
Stars: ✭ 16 (-72.41%)
Mutual labels:  tracker, bittorrent-tracker
Torrenter
Simple nodejs package to download torrents using torrent-indexer and webtorrent, especially movie and series.
Stars: ✭ 42 (-27.59%)
Mutual labels:  tracker, webtorrent
ut pex
Implementation of ut_pex bittorrent protocol (PEX) for webtorrent
Stars: ✭ 54 (-6.9%)
Mutual labels:  bittorrent, webtorrent
Torrent
Full-featured BitTorrent client package and utilities
Stars: ✭ 4,138 (+7034.48%)
Mutual labels:  tracker, bittorrent
Nyaa
Bittorrent software for cats
Stars: ✭ 2,899 (+4898.28%)
Mutual labels:  tracker, bittorrent
webtorrent-webui
Web user interface for Webtorrent, based on the Transmission web UI
Stars: ✭ 41 (-29.31%)
Mutual labels:  bittorrent, webtorrent
Bt Btt
磁力網站U3C3介紹以及域名更新
Stars: ✭ 261 (+350%)
Mutual labels:  tracker, bittorrent
Ipmagnet
Check which IP adresses your BitTorrent client is handing out to trackers
Stars: ✭ 200 (+244.83%)
Mutual labels:  tracker, bittorrent
webtorrent-health
💚 Get health info about a webtorrent file or magnet link
Stars: ✭ 27 (-53.45%)
Mutual labels:  tracker, webtorrent
privtracker
Private BitTorrent tracker generator
Stars: ✭ 84 (+44.83%)
Mutual labels:  tracker, bittorrent
Snail
基于Java、JavaFX开发的下载工具,支持下载协议:BT(BitTorrent、磁力链接、种子文件)、HLS(M3U8)、FTP、HTTP。人家才不要你的⭐⭐呢,哼
Stars: ✭ 102 (+75.86%)
Mutual labels:  tracker, bittorrent

uwt npm downloads js-standard-style npm

Greenkeeper badge

µWT (µWebTorrentTracker) is a simple, robust and lightweight WebTorrent tracker server implementation

travis bitHound Overall Score

tracker

Node.js implementation of a BitTorrent tracker for WebTorrent clients.

A BitTorrent tracker is a web service which responds to requests from BitTorrent clients. The requests include metrics from clients that help the tracker keep overall statistics about the torrent. The response includes a peer list that helps the client participate in the torrent swarm.

This module is used by βTorrent Tracker, the first community operated WebTorrent tracker.

Features

  • Fast & lightweight server implementation
  • Supports ipv4 & ipv6
  • Supports tracker "scrape" extension
  • Robust and well-tested
  • Comprehensive test suite (runs entirely offline, so it's reliable)
  • Tracker statistics available via web interface at /stats or JSON data at /stats.json

Requires NodeJS 6+

Install

npm install uwt

Usage

To start a WebTorrent tracker server to track swarms of peers:

const Server = require('uwt')

const server = new Server({
  stats: true, // enable web-based statistics? [default=true]
  filter: function (infoHash, params, cb) {
    // Blacklist/whitelist function for allowing/disallowing torrents. If this option is
    // omitted, all torrents are allowed. It is possible to interface with a database or
    // external system before deciding to allow/deny, because this function is async.

    // It is possible to block by peer id (whitelisting torrent clients) or by secret
    // key (private trackers). Full access to the original HTTP/UDP request parameters
    // are available in `params`.

    // This example only allows one torrent.

    const allowed = (infoHash === 'aaa67059ed6bd08362da625b3ae77f6f4a075aaa')
    if (allowed) {
      cb(null)
    } else {
      cb(new Error('disallowed torrent'))
    }

    // In addition to returning a boolean (`true` for allowed, `false` for disallowed),
    // you can return an `Error` object to disallow and provide a custom reason.
  }
})

// Internal websocket and http servers exposed as public properties.
server.ws
server.http

server.on('error', function (err) {
  // fatal server error!
  console.log(err.message)
})

server.on('warning', function (err) {
  // client sent bad data. probably not a problem, just a buggy client.
  console.log(err.message)
})

server.on('listening', function () {
  // fired when server is listening
  console.log('listening on http port:' + server.http.address().port)
})

// start tracker server listening! Use 0 to listen on a random free port.
server.listen(port, onlistening)

// listen for individual tracker messages from peers:

server.on('start', function (addr) {
  console.log('got start message from ' + addr)
})

server.on('complete', function (addr) {})
server.on('update', function (addr) {})
server.on('stop', function (addr) {})

// get info hashes for all torrents in the tracker server
Object.keys(server.torrents)

// get the number of seeders for a particular torrent
server.torrents[infoHash].complete

// get the number of leechers for a particular torrent
server.torrents[infoHash].incomplete

// get the peers who are in a particular torrent swarm
server.torrents[infoHash].peers

CLI

Install uwt globally

$ npm install -g uwt

Easily start a tracker server:

$ webtorrent-tracker
Tracker: ws://localhost:8000
Tracker stats: http://localhost:8000/stats

Lots of options:

$ webtorrent-tracker --help
  webtorrent-tracker - Start a webtorrent tracker server

  Usage:
    webtorrent-tracker [OPTIONS]

  Options:
    -p, --port [number]  change the port [default: 8000]
        --trust-proxy    trust 'x-forwarded-for' header from reverse proxy
        --interval       client announce interval (ms) [default: 120000]
        --stats                   enable web-based statistics (default: true)
    -q, --quiet          only show error output
    -s, --silent         show no output
    -v, --version        print the current version

  Please report bugs!  https://github.com/DiegoRBaquero/uwt/issues

License

MIT

Copyright (c) Diego Rodríguez Baquero (uwt)

Copyright (c) Feross Aboukhadijeh (bittorrent-tracker)

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].