Karazeh is a library for patching desktop software, suitable for use as a game launcher.
C++ CMake Shell JavaScript C
Latest commit 0df6326 Aug 2, 2016 @amireh Add gitter badge to README
Permalink
Failed to load latest commit information.
bin Improve error handling in downloader & file_manager Jul 30, 2016
cmake Make all tests pass on Windows Jul 10, 2016
deps Fix build errors on OS X Jul 30, 2016
doc Update doc configs and some docs Jul 16, 2016
examples Stop statting filesize and cache paths Jul 29, 2016
include/karazeh
src
test Fix build errors on OS X Jul 30, 2016
.doxygen
.gitignore Update doc configs and some docs Jul 16, 2016
CHANGELOG Remove "stable" files Jul 4, 2016
CMakeLists.txt Generate binaries/libraries inside cmake bin dir Jul 12, 2016
COPYING Stop statting filesize and cache paths Jul 29, 2016
README.md
karazeh.sublime-project Use DI rigorously for better tests Jul 8, 2016
megadoc.conf.js Update doc configs and some docs Jul 16, 2016
package.json Update doc configs and some docs Jul 16, 2016

README.md

Karazeh

Gitter

NOTE

You are currently reading the documentation for the master branch which is NOT stable and is not yet ready for production use. Refer to the stable branch if that's what you're looking for.

Karazeh is a cross-platform tool for patching and launching desktop applications, suited for PC games. The purpose of this tool is to provide you with the ability to update your users' clients with minimal hassle without requiring you to re-invent the wheel and write your own patcher.

Karazeh is meant to be used with Kiwi, the tool that generates the patch scripts which Karazeh consumes. They both should operate on Windows, Linux, and Mac OS X.

Both tools are freely available and licensed under the MIT license.

Building

See the [[./doc/building.md]] guide.

Usage

Currently there's a basic example you can see under examples/basic which shows how to interface with the low-level APIs to get an application to fetch the available updates and apply them in succession. However, it's likely we'll be introducing higher level APIs to do this sort of thing in the future so you wouldn't have to fret with so much details.

TBD

Tests

To run the unit tests you must launch an http server on port 9393 to serve the files under /path/to/karazeh/test/fixture for the tests.

If you have Python2 available, it's very easy:

(cd test/fixture; python2 -m SimpleHTTPServer 9393)

If you're on Arch Linux, you can use darkhttpd instead:

pacman -S darkhttpd
darkhttpd /path/to/karazeh/test/fixture --port 9393

Afterwards, run the binary:

./build/karazeh_tests

The test runner can be customized using some environment variables:

  • VERBOSE=1 if you want more output
  • ROOT=/path/to/root should point to the root directory of the Karazeh repository; this is needed in case the built-in binary locators aren't doing their job correctly.
  • HOST=http://customhost:1234 should point to the fixture server. Defaults to http://localhost:9393

License

Copyright 2011-2016 Ahmad Amireh ahmad@amireh.net.

The code is licensed under the GNU L-GPL v3.0 (see COPYING) and is free to use, link-against and embed within free and commercial applications.

Libraries used by Karazeh to link against and their respective licenses:

  • json11 - MIT
  • librsync - GNU LGPL v2.1
  • binreloc - DWTFYWT
  • RSA Data Security, Inc. MD5 Message-Digest Algorithm - ???