Lightweight database system intended for use in embedded systems.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Build Status Coverage Status


Lightweight static database system intended for use in embedded systems. This module simulates database using user-provided memory source. DBMS takes care of accessing, writing and organizing data, so no knowledge of memory addressing is required for the user.

  • Lightweight
  • Embedded
  • Simple
  • Static

Data organization

DBMS is using blocks and sections with various parameters to organize data in memory. Image below displays possible internal data organization in memory using DBMS.


A block of data is specified using the following parameters:

  • Number of sections
  • Section
  • Address (Calculated internally)


Block section is specified using the following parameters:

  • Total number of parameters inside section
  • Data parameter type (Bit, byte, half-byte, word or dword)
  • Preserve on partial reset (if set to true, data in section won't be cleared when performing reset of data)
  • Default value (value which will be assigned to all parameters inside section)
  • Auto increment (if set to true, default value will be used as starting value for first parameter, and all consecutive parameters will be incremented by 1)
  • Address (Calculated internally)


An example database can be found in example directory. Also, example memory sources can be found for AVR microcontrollers with EEPROM memory and simulated database using simple byte array.