jadebase is a cross-platform framework for developing professional software applications in C++ and Lua. It provides a task-based threading framework and a GUI system, as well as various utilities.
jadebase is developed by Joseph Durel [jadematrix.art@gmail.com] and licensed under the zlib license, copyright 2014-2015. It employs & supplies patches for FastFormat and STLSoft by Matthew Wilson, which is licensed under a modified BSD license (included in the LICENSE file just to be safe).
jadebase provides classes for creating & controlling threads, muteces, conditions, and semaphores in an object-oriented manner. In addition, a scoped_lock
template class is provided for simple & safe lock control.
jadebase is structured to be almost entirely task-based. By inheriting from a base jade::task
class, developers can create executable objects to pass to a central control system that dispatches to worker threads.
Provides a Lua-scriptable GUI system with buttons, sliders, tabs, scrolling, groups, and more.
Unified, cross-platform-safe events, including tablet input
Simple interface for storing & loading program settings from .CFG
text files
Currently only the Linux (GNU/Posix + X window system) port of jadebase builds. To install the jadebase shared library, run make linux_install
. Being a C++ library, jadebase's ABI can differ across compilers. For future-proofing against support for multiple compilers, the shared library is named libjadebase-${CPPC}.so
where CPPC is the C++ compiler named in the Makefile. The shared library and appropriate symlinks are placed in /usr/local/lib/
; header files are placed in /usr/local/include/jadebase/
.
1 Lua version probably does not matter, but requirements are kind of hard-coded in the Makefile for now. ↩