0.0.1 • Published 2 years ago

wt-tracker v0.0.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

Build Status Coverage Status

wt-tracker

High-performance WebTorrent tracker.

WebTorrent tracker is a required component of WebTorrent and P2P Media Loader (peer-to-peer networks for web browsers) to do WebRTC signaling - exchanging connection data (i.e. SDP) between peers - joining them into swarms.

Features

  • handles more than 40k WebSocket Secure (HTTPS) peers on a VPS with only 2 GiB memory and 1 virtual CPU thanks to uWebSockets.js I/O backend and perfomance optimizations in the code
  • handles ws:// (HTTP) and wss:// (HTTPS) connections simultaneously
  • IPv4 and IPv6 support
  • robust and well-tested: CI, unit tests, static code analyzis, 100% TypeScript
  • supports tracker "scrape" extension
  • statistics under /stats.json URL

Related projects

Build instructions

Node.js 10+ is required.

npm install
npm run build

Run instructions

./bin/wt-tracker [config.json]

or

node dist/run-uws-tracker.js [config.json]

or

npm start [config.json]

Configuration

See config.json

NameTypeDescription
servers.websockets.pathstringURL pattern for the WebSockets endpoint
servers.websockets.maxPayloadLengthnumberThe maximum length of received message
servers.websockets.midleTimeoutnumberThe maximum amount of seconds that may pass without sending or getting a message. Being idle for more than this, and the connection is severed.
servers.websockets.compression0,1,20 = no compression, 1 = shared compressor, 2 = dedicated compressor (see details)
servers.websockets.maxConnectionsnumberThe maximum number of WebSocket connections. 0 = no limit.
tracker.maxOffersnumberThe maximum number of client's WebRTC SDP offers that are processed
tracker.announceIntervalnumberDesired announce interval in seconds required from the clients

Index HTML page

You can specify a content of the index page by creating index.html file in the working directory.