HHello and welcome to the open source embedded database list. We hope this list helps you to find a library for your development needs. In addition to an (incomplete) list of open source database engines, you will find articles about the use of embedded databases and helpful tips to select one.

When should I use an embedded database?

EEmbedded databases obviously are not related to embedded platforms, although they also can run on phones, tablets or a Raspberry Pi. “Embedded” means they are directly linked into your application. If users install your program then there is no need to install (and administrate) a separate database. Your installation routines will be a lot simpler, you do not have to provide support for potential database problems and your users have less hassle. Your code will usually run faster, too, because you avoid the inter-process communication between your application and the external database server.

upscaledb embedded database

Your reliable and fast embedded database solution. upscaledb is the only embedded key/value database engine which optimizes storage and algorithms for your specific data types.

Optional compression further reduces file size and I/O, and can keep more data in memory to increase performance and scalability when running full-table scans to query and analyze your data.

Blazingly fast analytical functions and database cursors make it a natural fit to process data whenever a SQL database is not fast enough.

Download upscaledb for free!

The list of embedded databases

Accuracer Database System

A Windows/Linux cross-platform BDE alternative embedded Delphi database with SQL support for software developers working in the Embarcadero RAD Studio, Borland (CodeGear) Delphi/C++Builder and Borland Kylix. Closed source.
Author: AidAim Software
License: Commercial
Features: Concurrent; SQL; Encryption; Transactions; ODBC
Platforms: Linux, Windows
Languages: C/C++, Delphi, Kylix

Apache Derby

Derby is an embeddable SQL engine written entirely in Java. Fully transactional, multi-user with a decent SQL subset, Derby is a mature engine and freely available under the Apache license and is actively maintained. It is also distributed as part of Oracle's Java SE Development Kit (JDK) under the name of Java DB.
Author: The Apache Software Foundation
License: APL
Features: SQL; Transactions
Platforms: All JVM implementations
Languages: Java

BerkeleyDB

Berkeley DB is a fast, open-source embedded database and is used in several well-known open-source products, including the Linux and BSD Unix operating systems, Apache Web server, OpenOffice productivity suite. Implements B+tree and hash table indices. Implemented in C, open source.
Author: Initially SleepyCat, now Oracle
License: Affero GPL v3; Commercial licenses available
Features: File- or in-memory-based; Transactions; Cursors; Concurrency; Compression; Encryption; High Availability
Platforms: Unix/Linux/MacOSX, Windows, Android, iOS and many others
Languages: C/C++, Java, .NET, Erlang, Ruby, PHP, Perl and many others

Empress Embedded Database

Empress is an ACID compliant, SQL database engine. Applications developed using these APIs may be run in standalone and/or server modes. Deployed in various environments including medical systems, network routers, nuclear power plant monitors, satellite management systems, and other embedded system applications.
Author: Empress Software, Inc.
License: Commercial
Features: SQL; Transactions; Encryption; Spatial search; Text search
Platforms: Unix/Linux/MacOSX, Windows, Realtime OSs and many others
Languages: C/C++, ODBC, JDBC, .NET

Extensible Storage Engine

ESE is an Indexed Sequential Access Method (ISAM) data storage technology from Microsoft. ESE is notably a core of Microsoft Exchange Server and Active Directory. Its purpose is to allow applications to store and retrieve data via indexed and sequential access. Windows Mail and Desktop Search in the Windows Vista operating system also make use of ESE to store indexes and property information respectively.
Author: Microsoft
License: unknown
Features: Schema support; Transactions; Cursors; Indices; Queries
Platforms: Windows
Languages: C/C++, ODBC, JDBC, .NET

eXtremeDB

A database system product family including real-time performance, high availability and support for hybrid (RAM and disk) database. eXtremeDB was designed in 2001 explicitly for real-time applications and for embedded systems. Hundreds of licensees have deployed >25 million run-time copies of eXtremeDB in network equipment, aerospace & defense, consumer electronics and industrial control.
Author: McObject
License: Commercial
Features: In-memory & persistent; High Availability; Cluster; SQL; ACID
Platforms: Unix, Linux, MacOS/iOS, Windows, VxWorks, INTEGRITY, QNX and many others
Languages: C/C++, Java, C#, Python

ITTIA DB SQL

ITTIA DB SQL is a relational database management software library for embedded systems and intelligent mobile devices. It is a full-featured robust data management technology that scales down to meet the constrained resource requirements of embedded systems. ITTIA DB SQL is a solid database framework for the development of a variety of mission critical systems from consumer electronics, medical devices, robotics, industrial automation, and solar systems to many other markets.
Author: ITTIA L.L.C.
License: Commercial
Features: Transactional; In-memory & persistent; Portable file format; SQL; Encryption; Authentication
Platforms: Unix, Linux, MacOS/iOS, Windows, VxWorks, INTEGRITY, QNX and many others
Languages: C/C++, ODBC, JDBC, Lua, Python, Ruby

Kyoto Cabinet

Fast and mature key/value store with sorted (Btree) and unsorted (Hash table) databases. Implemented in C, open source.
Author: Mikio Hirabayashi, FAL labs
License: GPL, LGPL; Commercial licenses available
Features: Transactions; Cursors
Platforms: Unix/Linux/MacOSX, Windows
Languages: C/C++, Java, .NET, Ruby, PHP, Perl and many others

LevelDB

An ordered key/value store created by Google as a lightweight implementation of the BigTable storage design. Features a write-optimised LSM tree. Google distributes LevelDB under the New BSD License. Implemented in C++.
Author: Initially Google, now the LevelDB community
License: BSD
Features: Compression; Cursors
Platforms: Unix/Linux/MacOSX, Windows
Languages: C/C++, Java, .NET, Erlang, Ruby, PHP, Perl and many others

Perst

An object-oriented database system product in pure Java and pure C# versions. Perst gives developers the ability to sort, store and retrieve objects (e.g. Plain Old Java Objects, POJOs) in their applications with maximum speed and with low memory and storage overhead, while leveraging the object-oriented paradigm of Java and C#.
Author: McObject
License: GPL; Commercial licenses available
Features: In-memory & persistent; Replication; ACID
Platforms: JVM, .NET, J2EE, J2ME
Languages: Java, C#

Raima Database Manager (RDM)

RDM is a In Memory, small footprint, high performance, ACID-compliant embedded database management system. RDM has been designed to utilize multi-core computers, networking (local or wide area), and on-disk or in-memory storage management. With Raima Database Manager (RDM) 14.0, data is up to date and reliably available in real time. With RDM 14.0 we have developed a brand new in-memory database platform that has the potential to transform your enterprise application for access to critical information in near real time.
Author: Raima
License: Commercial (free eval version)
Features: In-memory & persistent; Compression; High Availability; SQL; SQL PL; Encryption; Relational and Network model; Platform independent file format; Dynamic DDL and ACID
Platforms: MS Windows, Linux, Android, QNX, VxWorks, Integrity, Mac OSX, iOS, HPUX, Solaris SPARC, AIX
Languages: C/C++, ODBC, JDBC, ADO.NET, LabView interface

Rockall-DB

A completely new approach to transactional databases. There are no complicated data models, function calls or SQL in Rockall-DB. Instead, the transactional database is built into, and works in conjunction with, the memory allocator. Consequently, main memory becomes part of the transactional database. Any data structure you can build in main memory you can store as an ACID-compliant transactional database with Rockall-DB.
Author: Rockall Software Ltd.
License: Commercial (free evaluation version)
Features: ACID, In-Memory and/or Disk, Compression, High Availability, Embedded, Encryption, Multi-model DB support (i.e. Graph, Hierarchic, JSON, Key value, Object oriented, Relational, XML
Platforms: Windows, Linux (in development)
Languages: C++

RocksDB

Built on LevelDB, with improved scalability for servers with many CPU cores. API and functionality is similar to LevelDB. Written in C++.
Author: Facebook
License: BSD
Features: Compression; Cursors
Platforms: Unix/Linux/MacOSX, Windows
Languages: C/C++, Java, .NET, Erlang, Ruby, PHP, Perl and many others

Symas Lightning MDB (LMDB)

Compact memory-mapped database, originally written for the OpenLDAP project. API is modeled after BerkeleyDB. Implements B+trees with multiversion concurrency control (MVCC), Single level store, Copy on write and provides full ACID transactions with no deadlocks.
Author: Symas Corp.
License: OpenLDAP Public License
Features: Transactions; Cursors; Concurrency; Hot Backups
Platforms: Unix/Linux/MacOSX, Windows, Android, iOS
Languages: C/C++, Java, .NET, Erlang, Ruby, PHP, Perl and many others

Sophia

Very fast hybrid (Ram and Disk) key/value store. Automatically moves read-intensive data to RAM or flash storage; uses disk for cold data. Implemented in C.
Author: Dmitry Simonenko (@pmwkaa)
License: BSD
Features: Transactions; Cursors
Platforms: Unix/Linux/MacOSX
Languages: C/C++, Java, .NET, Erlang, Ruby, PHP, Perl and many others

SQLite

A software library that implements a self-contained, server-less, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code is in the public domain.
Author: The SQLite developer community
License: Public Domain
Features: SQL; File- or in-memory-based; Transactions; Cursors
Platforms: Unix/Linux/MacOSX, Windows, Android, iOS and many others
Languages: C/C++, Java, .NET, Erlang, Ruby, PHP, Perl and many others

UnQLite

A fast transactional key/value database with a builtin JSON document store. Includes a scripting language to access and modify the documents.
Author: Symic Systems
License: BSD; Compression and encryption require a commercial license
Features: File- or in-memory-based; Transactions; Cursors; JSON document store
Platforms: Unix/Linux/MacOSX, Windows
Languages: C/C++, Java, .NET, Ruby, PHP, Perl and many others

upscaledb

High performance key/value store with a parameterized B+-tree. Keys and records are "typed" (i.e. 32bit integers, floats, variable length or fixed length binary data). Has built-in query language to aggregate and filter data.
Author: Christoph Rupp (@cruppstahl)
License: GPLv2 or later, with many exceptions; Commercial licenses available
Features: File- or in-memory-based; Transactions; Cursors; Compression; Encryption; Remote access; Built-in analytical functions
Platforms: Unix/Linux/MacOSX, Windows, Android, iOS
Languages: C/C++, Java, .NET, Erlang, PHP, Python

Vedis

A transactional key/value store supporting more than 70 commands of the Redis database. Based on UnQLite.
Author: Symic Systems
License: Free for non-commercial use; Commercial licenses available
Features: Transactions; Concurrency; Redis compatibility
Platforms: Unix/Linux/MacOSX, Windows
Languages: C/C++, .NET, node.js

WiredTiger

Inofficial successor of BerkeleyDB. Very high write throughput. Implements B+tree and LSM indices. Includes a LevelDB compatibility layer.
Author: Initially WiredTiger, now MongoDB
License: GPL v2 or later; Commercial licenses available
Features: Transactions; Cursors; Schema support including indices and projections; Compression
Platforms: Unix/Linux/MacOSX, Windows
Languages: C/C++, Java, .NET, Python, Perl, PHP and many others