Harfang is a low-level software library to create multimedia applications.

The following schema provides an overview of the main systems the library consists of.


Selecting a language

The same API is exposed to all supported languages. Selecting the language to write your program mainly comes down to two major factors:

  1. The target hardware/machine,
  2. The need to use external libraries for functionalities the library does not provide.

Using Python

Harfang for Python is distributed as a wheel package (.whl) compatible with official builds of the CPython interpreter (3.4 or newer).

This is the recommended option for desktop applications relying on other Python packages (eg. PyQT).

This module is only available on desktop OS.

Using Lua

The stand-alone Lua 5.1 interpreter is the recommended solution for embedded/mobile development and maximum portability. You trade the very rich Python eco-system for the speed, portability and size of Lua (or LuaJIT).

Programs written in Lua can be run on all platforms supported by the Harfang library.