upscaledb  2.2.1
upscaledb Documentation

This is the commercial closed-source version of upscaledb!

This manual documents the upscaledb C API. upscaledb is a key/value database that is linked directly into your application, avoiding all the overhead that is related to external databases and RDBMS systems.

This header file declares all functions and macros that are needed to use upscaledb. The comments are formatted in Doxygen style and can be extracted to automagically generate documentation. The documentation is also available online here:

In addition, there's a tutorial book hosted on

If you want to create or open Databases or Environments (a collection of multiple Databases), the following functions will be interesting for you:

ups_env_createCreates an Environment
ups_env_openOpens an Environment
ups_env_closeCloses an Environment
ups_env_create_dbCreates a Database in an Environment
ups_env_open_dbOpens a Database from an Environment
ups_db_closeCloses a Database

To insert, lookup or delete key/value pairs, the following functions are used:

ups_db_insertInserts a key/value pair into a Database
ups_db_findLookup of a key/value pair in a Database
ups_db_eraseErases a key/value pair from a Database

Alternatively, you can use Cursors to iterate over a Database:

ups_cursor_createCreates a new Cursor
ups_cursor_findPositions the Cursor on a key
ups_cursor_insertInserts a new key/value pair with a Cursor
ups_cursor_eraseDeletes the key/value pair that the Cursor points to
ups_cursor_overwriteOverwrites the value of the current key
ups_cursor_moveMoves the Cursor to the first, next, previous or last key in the Database
ups_cursor_closeCloses the Cursor

If you want to use Transactions, then the following functions are required:

ups_txn_beginBegins a new Txn
ups_txn_commitCommits the current Txn
ups_txn_abortAborts the current Txn

upscaledb supports remote Databases. The server can be embedded into your application or run standalone (see tools/upszilla for a Unix daemon or Win32 service which hosts Databases). If you want to embed the server then the following functions have to be used:

ups_srv_initInitializes the server
ups_srv_add_envAdds an Environment to the server. The Environment with all its Databases will then be available remotely.
ups_srv_closeCloses the server and frees all allocated resources

If you need help then you're always welcome to use the mailing list, drop a message (chris at crupp dot de) or use the contact form.

Have fun!