Open source libraries

Explore and use the following open source libraries to add rich features to your app without doing all the work. For instructions on how to use them, visit the provided links.


Provides a collection of peer reviewed and portable C++ source libraries.

Home page Source location
Boost Boost on GitHub


Provides a feature-rich, rigid body, 2-D physics engine for games.

Home page Source location
Box2D Box2D on GitHub

Bullet Physics

Provides a physics engine featuring 3-D collision detection, soft body dynamics, and rigid body dynamics.

Home page Source location
Bullet Physics Bullet Physics on GitHub


Provides a C++ port of the lightweight, multi-platform Cocos2d-x game engine.

Home page Source location
Cocos2d-x Cocos2d-x on GitHub


Provides an Erlang-based port of the Apache CouchDB document-oriented database.

Home page Source location
CouchDB CouchDB on GitHub


Provides a C++ unit testing framework that you can use to determine whether your code is working.

Home page Source location
CppUnit CppUnit on GitHub


Provides a programming language used to build massively scalable, soft real-time systems with requirements for high availability.

Home page Source location
Erlang-OTP Erlang-OTP on GitHub


Provides a cross-platform, 3-D native gaming framework that makes it easy to learn and write mobile and desktop games.

Home page Source location
gameplay gameplay project home page


Provides help for shell scripts to parse command-line parameters.

Home page Source location
GetOpt GetOpt on GitHub


Provides a C library for working with JSON data.

Home page Source location
Jansson Jansson JSON library on GitHub


Provides a fast, C-based JSON parser.

Home page Source location
JSON_parser JSON_parser on GitHub


Provides an embeddable scripting language, combining simple procedural syntax with powerful data-description constructs, based on associative arrays and extensible semantics.

Home page Source location
Lua Lua on GitHub


Provides a game and application framework that targets multiple platforms with the same source code.

Home page Source location
NME NME on GitHub


Provides a computer vision and machine learning library.

Home page Source location
OpenCV OpenCV on GitHub


Provides a simulation game based on Transport Tycoon Deluxe (TTD).

Home page Source location
OpenTTD OpenTTD on GitHub


Provides a set of functions that allows you to use regular expressions using the same syntax and semantics as Perl 5.

Home page Source location

Quake 3

Allows you to use a port of the multiplayer, first-person shooter Quake III Arena game engine.

Home page Source location
Quake 3 Quake 3 on GitHub


QuaZIP is a simple C++ wrapper that can be used to access .zip archives. It uses the Qt toolkit.

  • Platform: C++
  • OS: Mac, Windows
  • API level: 10.0
Home page Source location
QuaZIP QuaZIP on GitHub

The following instructions assume that the QuaZIP library is imported into the same workspace as your project.

  1. Download QuaZIP from GitHub.
  2. Import the project into your workspace. Select Copy Into when importing.
  3. Update your application's .pro file to include the following:
INCLUDEPATH += ../src ../../quazip/src/
LIBS += -lbbsystem
LIBS += -lbbdata
LIBS += -lz

lupdate_inclusion {
    SOURCES += ../assets/*.qml

device {
    CONFIG(release, debug|release) {
        DESTDIR = o.le-v7
        LIBS += -Bstatic -L../../quazip/arm/o.le-v7 -lquazip -Bdynamic

    CONFIG(debug, debug|release) {
        DESTDIR = o.le-v7-g
        LIBS += -Bstatic -L../../quazip/arm/o.le-v7-g -lquazip -Bdynamic 

simulator {
    CONFIG(release, debug|release) {
        DESTDIR = o
        LIBS += -Bstatic -L../../quazip/x86/o-g/ -lquazip -Bdynamic 

    CONFIG(debug, debug|release) {
        DESTDIR = o-g
        LIBS += -Bstatic -L../../quazip/x86/o-g/ -lquazip -Bdynamic

The following sample demonstrates using QuaZIP to extract a .zip file to the shared downloads directory. The sample requires the Shared Files permission in order to write to the downloads directory. The sample also requires you to use the following import statement: #include "../quazip/src/quazipfile.h"

bool ApplicationUI::extractArchive(QString m_filename) {
    // Check if file exists
    QFile file(m_filename);
    if (!file.exists()){
        qDebug() << "File does not exist.";
        return false;

    bool result = true;
    QuaZip *m_zip = new QuaZip(m_filename);

    QString dataFolder = QDir::currentPath();
    QString bookname = m_filename.split("/").last().split(".").first();

    QString dest = dataFolder + "/shared/downloads/" + bookname;
    QDir dir(dest);
    if (!dir.exists()) {

    qDebug() << "destination folder: " + dest;


    if (!m_zip) {
        return false;

    QuaZipFile *currentFile = new QuaZipFile(m_zip);
    int entries = m_zip->getEntriesCount();
    int current = 0;

    for (bool more = m_zip->goToFirstFile(); more; more = m_zip->goToNextFile()) {
        // If the entry is a path ignore it 
        // Path existence is ensured separately
        if (m_zip->getCurrentFileName().split("/").last() == "")

        QString outfilename = dest + "/" + m_zip->getCurrentFileName();
        QFile outputFile(outfilename);
        // Make sure the output path exists
        if (!QDir().mkpath(QFileInfo(outfilename).absolutePath())) {
            result = false;
            qDebug() << "[ZipUtil] creating output path failed for:" << outfilename;

        if (! {
            result = false;
            qDebug() << "[ZipUtil] creating output file failed:" << outfilename;

        if (currentFile->getZipError() != UNZ_OK) {
            result = false;
            // Emit logItem(tr("Error during Zip operation"), LOGERROR);
            qDebug() << "[ZipUtil] QuaZip error:" 
                    << currentFile->getZipError() 
                    << "on file" << currentFile->getFileName();

    return result;



Allows you to use the Recast mesh construction toolset for games.

Home page Source location
RecastNavigation RecastNavigation on GitHub


SBuilder is a tool for browsing and editing SQLite databases.

Home page Source location
Not available SBuilder on GitHub


Provides a standard mechanism for accessing multimedia using Simple DirectMedia Layer (SDL), which is a cross-platform multimedia library that's designed to provide low-level access to audio, keyboard, mouse, joystick, 3-D hardware (using OpenGL), and 2-D video framebuffers.

Home page Source location
SDL SDL on GitHub


Provides a complete 2-D graphics library for drawing text, geometries, and images.

Home page Source location
Skia Skia on GitHub


Provides access to the Mozilla GitHub engine, written in C/C++.

Home page Source location
SpiderMonkey SpiderMonkey on GitHub


Provides a JavaScript engine to use in app development.

Home page Source location
V8 V8 on GitHub

Related resources

Last modified: 2015-05-07

Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus