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 http://whitedb.org 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.
Note
|
if you’re looking for release packages, please don’t use the ones Github generates automatically. Get them from http://whitedb.org/download.html instead. |