Git Product home page Git Product logo

mirrorbrain's Introduction

mirrorbrain

This code used to live in Subversion so far, hosted on mirrorbrain.org. Maybe it's time to experiment with moving to GitHub. poeml, Mon 11 May 2015 23:06:47 CEST

What is it?

MirrorBrain is an open source framework to run a content delivery network using mirror servers. It solves a challenge that many popular open source projects face - a flood of download requests, often magnitudes more than any single site could practically handle.

The central (and probably the most obvious) part is a "download redirector" which automatically redirects requests from web browsers or download programs to a mirror server near them.

One example of a running instance is http://download.opensuse.org/

Features

For clients (users):

  • allows to have one central URL for clients to download content
  • uses geolocation and global routing data to find the closest mirror for clients
  • automatically keeps cryptohashes of all files and can serve these on request
  • optionally generates Metalinks (RFC5854) and Torrents in realtime
  • provides automatically generated mirror list for overview (For example: https://mirrors.opensuse.org/)
  • Allows to list available mirrors for single files to choose (example)

For mirrors:

  • load-balancing of mirrors, based on weighting
  • ability to limit requests for a mirror to its own network or country
  • file level granularity (mirrors don't have to mirror the full file tree - they can choose what they want)
  • reliably assess large file support of mirrors

For admins of a MirrorBrain server:

  • has proven to handle hundreds of requests per second
  • ability to NOT redirect certain requests, for security reasons
  • content on mirrors can be protected by URL signing (clients can only download from mirrors if they successfully authenticated with the MirrorBrain server)
  • commandline tools and Python module for maintenance tasks
  • support for running behind a load balancer, using e.g. X-Forwarded-for header for the clients IP address
  • integrated in Apaches module API, for compatibility with numerous other existing Apache modules, e.g. SSL
  • multiple instances are supported to run in one Apache (one per virtual host)
  • flexible logging
  • more than a redirector
    • serve automatically generated cryptohashes (MD5, SHA1, SHA256)
    • generation of RFC5854 Metalinks
    • support for RFC3230 - Instance Digests in HTTP
    • support for RFC6249 - Metalink/HTTP: Mirrors and Hashes
    • generation of Torrents (including the closest mirrors as seeds)
    • support for zsync
    • support for native Yum mirror lists, compatible to Fedora and CentOS

mirrorbrain's People

Contributors

darix avatar dimstar77 avatar jnweiger avatar lrupp avatar poeml avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.