Skip to content
Switch branches/tags
Go to file
This branch is 35 commits behind priitj:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


WhiteDB (wgdb) README

WhiteDB is a lightweight database library operating fully in main memory. Disk is used only for dumping/restoring database and logging.

Data is persistantly kept in the shared memory area: it is available simultaneously to all processes and is kept intact even if no processes are currently using the database.

WhiteDB has no server process. Data is read and written directly from/to memory, no sockets are used between WhiteDB and the application using WhiteDB.

WhiteDB keeps data as N-tuples: each database record is a tuple of N elements. Each element (record field) may have an arbitrary type amongst the types provided by WhiteDB. Each record field contains exactly one integer (4 bytes or 8 bytes). Datatypes which cannot be fit into one integer are allocated separately and the record field contains an (encoded) pointer to the real data.

WhiteDB is written in pure C in a portable manner and should compile and function without additional porting at least under Linux (gcc) and Windows (native Windows C compiler cl). It has Python and experimental Java bindings.

WhiteDB has several goals:

  • speed

  • portability

  • small footprint and low memory usage

  • usability as an rdf database

  • usability as an extended rdf database, xml database and outside these scopes

  • seamless integration with the Gandalf rule engine (work in progress)

See for up-to-date documentation and other information. This distribution also includes various documentation:

  • Doc/Install.txt - the installation instructions

  • Doc/Tutorial.txt - getting started with the database

  • Doc/Manual.txt - full C API documentation

  • Doc/Utilities.txt - command line utilities and other programs

  • Doc/python.txt - Python API documentation

WhiteDB is licenced under GPL version 3.

if you’re looking for release packages, please don’t use the ones Github generates automatically. Get them from instead.