UnQLite is a in-process software library which implements a self-contained, serverless, zero-configuration, transactional NoSQL database engine. UnQLite is a document store database similar to MongoDB, Redis, CouchDB etc. as well a standard Key/Value store similar to BerkeleyDB, LevelDB, etc.
UnQLite is an embedded NoSQL (Key/Value store and Document-store) database engine. Unlike most other NoSQL databases, UnQLite does not have a separate server process. UnQLite reads and writes directly to ordinary disk files. A complete database with multiple collections, is contained in a single disk file. The database file format is cross-platform, you can freely copy a database between 32-bit and 64-bit systems or between big-endian and little-endian architectures. UnQLite features includes:
UnQLite is a self-contained C library without dependency. It requires very minimal support from external libraries or from the operating system. This makes it well suited for use in embedded devices that lack the support infrastructure of a desktop computer. This also makes UnQLite appropriate for use within applications that need to run without modification on a wide variety of computers of varying configurations.
UnQLite is 100% hand-coded, written in ANSI C, Thread-safe, Full reentrant, compiles unmodified and should run in most platforms including restricted embedded devices with a C compiler. UnQLite is extensively tested on Windows and UNIX systems especially Linux, FreeBSD, Oracle Solaris and Mac OS X.
UnQLite is a standard key/value store similar to BerkeleyDB, LevelDB, etc. but, with a rich feature set including support for transactions (ACID), concurrent reader, etc. Under the KV store, both keys and values are treated as simple arrays of bytes, so content can be anything from ASCII strings, binary blob and even disk files. The KV store layer is presented to host applications via a set of interfaces, these includes: unqlite_kv_store(), unqlite_kv_append(), unqlite_kv_fetch_callback(), unqlite_kv_append_fmt(), unqlite_kv_delete(), etc.
The Document store interface to UnQLite which is used to store JSON docs (i.e. Objects, Arrays, Strings, etc.) in the database is powered by the Jx9 programming language. Jx9 is an embeddable scripting language also called extension language designed to support general procedural programming with data description facilities. Jx9 is a Turing-Complete, dynamically typed programming language based on JSON and implemented as a library in the UnQLite core.
Finally, UnQLite is an open-source product release under the 2-Clause BSD license. See the license page for additional information.
unQLite Programming Interfaces.
Documentation describing the APIs used to program UnQLite. Note that UnQLite is very easy to learn, even for new programmer.
Here is some useful links to start with:
|UnQLite In 5 Minutes Or Less
A very quick introduction to programming with UnQLite with working examples implemented in C.
|Introduction To The UnQLite C/C++ Interface||Gives an overview and
roadmap to the C/C++ interface to UnQLite.
|Introduction To Jx9
Jx9 is the embedded scripting language which power the document-store interface to UnQLite. Jx9 is a Turing complete programming language based on JSON and implemented as a library in the UnQLite core.
|C/C++ API Reference
||This document describes each API function
|The Architecture of the UnQLite Database Engine||
Gives a high-level overview of the UnQLite architecture and the related interfaces.
|Foreign Function Implementation||Is
a howto guide on how to create and install foreign functions (Typically
implemented in C/C++) and how to invoke them from your Jx9 script.
|Constant Expansion Mechanism||Is a howto guide on how to install foreign constants (Typically implemented in C/C++) and how to expand their values from your Jx9 script.|
Other Useful links.
|Download||Get a copy of the last public
release of UnQLite, start embedding and enjoy
|Distinctive Features||This document enumerates and describes
some of the features and powerfull extensions introduced by UnQLite and the Jx9 programming language to the database model.
|Frequently Asked Questions||FAQ: The
title of the document says all...
UnQLite sponsorship program is dedicated to insuring the continuing
vitality of UnQLite. UnQLite
is high-quality, Open-source software. The goal of the
sponsorship program is to make sure it stays that way.
|Copyright/Licensing||UnQLite is an Open-source product. Find more on the licensing situation there.
|Online Community Support||Need some help, join the UnQLite online community.|