Skip to main content

Overview

TrackersList is available through three different mirror sources to ensure maximum availability and global performance. Each mirror serves identical content updated daily.

GitHub Raw

Primary source, direct from repository

GitHub Pages

Static hosting with global CDN

jsDelivr CDN

Public CDN with aggressive caching

Mirror Comparison

Primary Source

Base URL:
https://raw.githubusercontent.com/ngosang/trackerslist/master/
Availability
High
Direct access to repository files with GitHub’s infrastructure
Rate Limits
  • Authenticated: 5,000 requests/hour
  • Unauthenticated: 60 requests/hour per IP
Caching
Moderate
GitHub CDN caching with standard TTL
Latency
Good
Served from GitHub’s global CDN
Example:
curl https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt
Best for: Development, testing, and applications with authentication

Available Mirrors by Endpoint

Curated Lists

https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt
https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt

Protocol-Specific Lists

https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_udp.txt
https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_http.txt
https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_https.txt
https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_ws.txt

Network-Specific Lists

https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_i2p.txt
https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_yggdrasil.txt

IP-Based Lists

https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best_ip.txt
https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_ip.txt
https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all_yggdrasil_ip.txt

When to Use Each Mirror

Development

Use: GitHub RawGood for:
  • Testing and development
  • Low-volume requests
  • Latest changes verification

Production

Use: GitHub Pages or jsDelivrGood for:
  • Production applications
  • High-availability requirements
  • Public-facing services

High Traffic

Use: jsDelivr CDNGood for:
  • Very high request volumes
  • Global user base
  • Maximum performance needs

Fallback Strategy

Use: All three with failoverGood for:
  • Mission-critical applications
  • Maximum reliability
  • Handling mirror downtime

Caching Behavior

Response Headers

Each mirror returns different caching headers:GitHub Raw:
Cache-Control: max-age=300
ETag: "..."
X-Content-Type-Options: nosniff
GitHub Pages:
Cache-Control: max-age=600
ETag: "..."
X-GitHub-Request-Id: ...
jsDelivr:
Cache-Control: public, max-age=86400
CDN-Cache-Control: public, max-age=31536000
ETag: "..."

Failover Implementation

1

Define Mirror Priority

List mirrors in order of preference based on your use case:
const mirrors = [
  'https://cdn.jsdelivr.net/gh/ngosang/trackerslist@master/trackers_best.txt',  // Fastest
  'https://ngosang.github.io/trackerslist/trackers_best.txt',                    // Reliable
  'https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt' // Authoritative
];
2

Implement Timeout

Set reasonable timeouts (5-10 seconds) for each request
3

Try Next Mirror on Failure

On timeout or error, immediately try the next mirror
4

Log and Monitor

Track which mirrors are failing to detect infrastructure issues
package main

import (
    "context"
    "fmt"
    "io"
    "net/http"
    "time"
)

func fetchWithFailover(endpoint string) (string, error) {
    mirrors := []string{
        "https://cdn.jsdelivr.net/gh/ngosang/trackerslist@master/",
        "https://ngosang.github.io/trackerslist/",
        "https://raw.githubusercontent.com/ngosang/trackerslist/master/",
    }
    
    client := &http.Client{
        Timeout: 10 * time.Second,
    }
    
    for _, mirror := range mirrors {
        url := mirror + endpoint
        ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
        defer cancel()
        
        req, err := http.NewRequestWithContext(ctx, "GET", url, nil)
        if err != nil {
            continue
        }
        
        resp, err := client.Do(req)
        if err != nil {
            continue
        }
        defer resp.Body.Close()
        
        if resp.StatusCode == 200 {
            body, err := io.ReadAll(resp.Body)
            if err == nil {
                return string(body), nil
            }
        }
    }
    
    return "", fmt.Errorf("all mirrors failed for %s", endpoint)
}

Mirror Status Monitoring

All mirrors are typically highly available (99.9%+ uptime), but implementing failover ensures your application remains resilient during rare outages.
Recommended Monitoring:
Track mirror performance within your application:
  • Response times for each mirror
  • Failure rates
  • Which mirror is being used most often
  • Alert if all mirrors fail

Performance Comparison

Actual performance varies by geographic location and network conditions. Test from your deployment regions.
Typical Global Response Times:
MirrorNorth AmericaEuropeAsiaAustralia
jsDelivr CDN20-50ms15-40ms30-60ms40-80ms
GitHub Pages40-80ms30-70ms60-120ms80-150ms
GitHub Raw50-100ms40-90ms80-150ms100-200ms
Throughput:
  • All mirrors handle 100+ concurrent requests easily
  • jsDelivr scales to thousands of requests/second
  • GitHub Pages handles hundreds of requests/second

Additional Resources

jsDelivr Documentation

Learn more about jsDelivr features and limits

GitHub Pages Docs

Understanding GitHub Pages infrastructure

Rate Limits

GitHub API and raw content rate limits

Best Practices

Integration patterns and optimization tips

Build docs developers (and LLMs) love