Skip to content

Speedy37/QtUpdateSystem

Repository files navigation

QtUpdateSystem

Windows build status Linux / OSX build Status

Provide an easy to use and very efficient update system for small to big archives. With this library you can auto update your application or whatever you want (size limit is at 2^64-1) with only a static file based repository.

This library is still experimental and currently used by the Stargate No Limits and Stargate Network teams to publish their updates.

The goals of this library is to provide a very efficient system to update files by :

  • minimizing the download size as much as possible
  • no more cost than serving static files for the HTTP server
  • working over HTTP(s) with optional basic authentication
  • publishing updates in a matter of seconds
  • checking & applying updates while downloading files
  • automatic error handling and files corrections
  • checking local file integrity

To achieve thoses goals this library depends on :

How to install

Once you have cloned this repository, the prefered way to compile the library is to use the cmake build suite.

How to use

The library is composed of 3 classes :

  • updater : for client side update
  • packager : for packages creation
  • repository : for managing packages and versions

Here is list of the most useful functions and a brief description of what it does

Updater

  • checkForUpdates : check from the remote repository if an update is available
  • update : update files
  • copy : copy the repository to another place

Packager

  • generate : generate a package

Repository

  • addPackage : add a package to the repository
  • removePackage : remove a package from the repository
  • simplify : remove useless packages
  • setCurrentRevision : change the current revision of the repository