Raima Database Manager™ (RDM)

High-Performance Embedded Database Technology

Raima Database Manager (RDM)™ is an embedded, cross-platform, small-footprint, in-memory database developed for the IoT and edge market. It is fast and persistent, optimized for performance and reliability (see our performance testing benchmarks). RDM can be used through a call from it's extensive suite of API's including the C/C++ cursor, Java JDBC, and C# ADO.NET. It also supports the use of standard third-party tools through the ODBC driver manager.

Try RDM now

An optimized in-memory implementation allows for faster transactions and results to support enterprises that need the utmost speed and performance. Learn more.

Fully supports real-time system performance.  RDM has been designed to meet the zero-administration requirements of an embedded application. Learn more.

Database file format

Small Footprint

RDM needs only 350k of RAM and minimal CPU speeds to fully operate. With more power in the system, RDM will fully utilize it all to perform even faster but that is not required.

ACID transactions guarantees that when changes to a database record are made, that data is correct and no data is lost. Learn more.

AES encryption from 128 bit to 256 bit meets market demand for cybersecurity support and gives Raima clients peace-of-mind. Learn more.

Through the use of SymmetricDS, Raima can store data on the edge and easily replicate that data to RDM or any cloud database.

Full featured and enhanced SQL support including SQL PL, Stored Procedures and Triggers. Learn more.

B-Tree, Hash, R-/R+ Tree, and AVL indexes are fully supported by RDM and available for users. Indexing with RDM.

Automatic encoding and compression use 25% less disk space on average. You can also leverage our vacuuming. Learn more.

Snapshot isolation allows concurrent reads to the database when write transactions are occurring. RDM takes a frozen image of the current state of the system and that information can be read from without stopping writes.
Learn more.

Develop once, deploy anywhere. The file format allows direct copy/paste or movement from one device or platform onto another regardless of byte order or architecture differences. RDM can even run without an OS in a barebones configuration. Learn more.

Arrow Icon

Multi-Core Scalability

Maintain performance as demands on the system increase by adding further resources. Possible through SMP and thread support, plus the capability of scaling on more than one server.

Try RDM for free

Raima Database Manager (RDM)™ at a glance

FunctionsRDM CoreRDM Enterprise
AES Encryption 128,192, 256 bits
ACID Compliance
Embedded / Real-time Application
Administrative Utilities
Platform Independence
Developer Environment Integration
Automatic Compression
Disk Storage
In-Memory Storage
Support for Dynamic Schema Modifications
Referential Integrity
Two-Phase Commit
Snapshots/Multiversion Concurrency Control(MVCC)
AVL, B-Tree, Hash, R-Tree Indexes
Geospatial Datatypes
3rd Party Utilities
3rd Party Replication
Interfaces and Programming LanguagesRDM CoreRDM Enterprise
Dynamic DDL
d_navigational API
Modern Cursor API
SQL Standard
SQL Arrays
SQL Unions
SQL Inner and Outer Joins
SQL Scrollable Cursors
SQL Triggers
SQL Stored Procedures
ODBC 3.9
Java JDBC 4.2
Supported Platforms/Operating SystemsRDM CoreRDM Enterprise
Microsoft Windows
Apple MacOS
Apple iOS
WindRiver VxWorks
WindRiver VxWorks RTP
WindRiver Linux
Green Hills Integrity
Embedded Linux
QNX Neutrino
NO OS (bare-bones)

Don't see your platform? Request support for your OS here


Database SpecificationsRDM CoreRDM Enterprise
Maximum Databases Open SimultaneouslyNo LimitNo Limit
Maximum Rows Per DatabaseNo LimitNo Limit
Maximum Size of Database FileLimited only by file systemLimited only by file system
Maximum Tables Per DatabaseNo LimitNo Limit
Maximum Records Per TableNo LimitNo Limit
Maximum Keys Per DatabaseNo LimitNo Limit
Maximum Fields Per TableNo LimitNo Limit
Maximum Row Size64K (excluding BLOB or VARCHAR)64K (excluding BLOB or VARCHAR)
RAM RequirementsMinimum 200K, User configurableMinimum 350K, User configurable

Flexible Licensing Options

Raima has always made the RDM source code available at a reasonable cost. Raima and its experienced developers are proud of this code and don’t mind if you take a peek, or even step through it in your own debugging system. Source code comes complete with project files necessary for you to build it yourself.
Since RDM can be freely downloaded and licensed for application development at a very low entry fee until it is ready to deploy, and with source code availability, there is very little cost difference between Raima’s commercial licensing and Open Source with support or for commercial use.


RDM Core - This introductory package is typically used in applications designed for edge IoT devices, where performance and footprint are of great importance.  Experience direct access to a comprehensive and easy-to-use low-level cursor C API for ultimate control while also providing a C++ API for object-oriented programming.


RDM Enterprise - This package is perfectly designed for application developers who are familiar with SQL and want to decrease development time.  It is Raima’s complete product package with the full set of features and functionality. The enterprise package is designed for multiple industry standard APIs to connect to third-party tools for purposes such as replication, reporting, analysis, and administration.

Visual Tools

Use the Visual Tools you're familiar with through our JDBC API. View and edit your data, insert mock-data, edit and build SQL queries.

DBeaver Data viewer and editor

  • Multiple data views to fit the variety of users’ needs, for example display of image contents (gif, png, jpeg, bmp) as images
  • Editing of data inline and in a dedicated space
  • Convenient navigation among data
  • Custom filters for table contents or query results, including filters based on cell values
  • Results ordering by column
  • Data export with all applied filters and orderings
  • Generation of SQL statements based on selected rows
  • Basic statistics for selected columns

Learn how to configure DBeaver for access to an RDM Database

DBeaver Advanced Mock-Data

In DBeaver you can generate random data (or “mock" data) for tables which looks like real data.

While the Community edition provides just basic data generators, the Enterprise edition supports many more additional generators and configuration including:

  • Names
  • Addresses
  • Credit cards
  • Domains and IP addresses
  • Custom regular expressions
  • Flexible numeric generators

Learn how to configure DBeaver for access to an RDM Database

DBeaver SQL editor

  • Organization of scripts into folders and reassignment of database connections for particular scripts
  • SQL syntax highlighting determined by the database associated with a script
  • Support for different sets of reserved keywords and system functions for different databases
  • Import and export of scripts

Learn how to configure DBeaver for access to an RDM Database

DBeaver Visual Query Builder

  • You may construct complex SQL queries without actual knowledge of SQL
  • Make table joins/filtering/ordering visually
  • Open existing SQL queries in visual mode to easily edit and save them
  • Execute your visually constructed query at any moment and get results on the screen
  • Analyze complex SQL queries visually

Learn how to configure DBeaver for access to an RDM Database

Get actionable insights fast

Leave chart builders behind. Live visual analytics fuel unlimited data exploration. Interactive dashboards help you uncover hidden insights on the fly. Tableau harnesses people’s natural ability to spot visual patterns quickly, revealing everyday opportunities and eureka moments alike.

Architecture – A Deeper Dive


RDM’s runtime environment is composed as two powerful but well-defined modules:

  1. The Runtime Library – This re-entrant linkable library becomes part of your executable program. It maintains a cache of database objects as it responds to function calls from your program.
  2. The Transactional File Server – This tight, multi-user server interacts with one or more Runtime Libraries concurrently. It manages access to database files. The TFS responds to runtime requests to read objects, to lock objects, or to apply transactional changes.

Runtime Library

As a re-entrant library, RDM fully supports multi-threaded applications. Each thread may open a database and operate on it concurrently with the others.

As a linkable library, RDM operates on data kept in a heap-based cache. Its robust APIs give you full visibility and control over the data. SQL is available through a C-based API, but also accessible through 3rd party tools. Other APIs allow fine-tuning of database operations using a cursor view or an object-oriented view.

Transactional File Server

At its core, the TFS is a library of functions. These functions are called by the runtime library. If the TFS is running in a separate process, its functions are called as RPCs (Remote Procedure Calls) using TCP/IP between computers and shared memory within the same computer.

However, the TFS functions may be linked directly into your application also. This has significant performance benefits and simplicity in operation. It’s faster because the Remote Procedure Calls become Local Procedure Calls (in-process). It’s simpler because everything is running within your program and there is no separate process to start first.


Yes, the Runtime Library and TFS are powerful and well-defined, but they can be configured in several ways. The figures below show just a few.

Multi-Computer Configuration - Amazingly Fast

When multiple computers are involved, they communicate through TCP/IP. If client and server are instead on the same computer, shared memory is used to speed it up.


Multi-Thread Single Computer Configuration - Even Faster

But when the runtime and TFS are in the same process, the inter-process communication is avoided, resulting in even more speed.

Multi-threaded applications are great for handling multiple windows on a screen, each with independent contents.


Single-Thread (exclusive access) - Faster than that!

Simpler, single-user applications have an advantage because there is no concurrent access to the database, hence no locking or waiting.


Single-Thread, In-Memory Database - The Absolute Fastest

Now, load the database from disk into memory and you have database management with all the stops pulled.

The RDM in-memory database option allows for volatile (it goes away when the application stops) and persistent (loaded from disk and saved to disk) databases.

It’s faster because there is no disk latency for reading and no waiting for disk writes during a transaction commit.

These are vulnerable to data loss if the application terminates without saving the data. Sometimes it’s a risk worth taking!


Ready to get started with RDM?