Ebase C++ Library Overview

Ebase is a portable, lightweight, and flexible C++ library that provides reliable persistent data storage.  Data are organized in a table format with rows(called records) and columns(called fields).

Aspects of ebase :

  • C++ interface.  Check out the on-line API document.
  • Ebase is implemented as a library, which can be either statically or dynamically linked with applications.
  • Persistent data are organized by fields (columns) and records (rows)
  • Fields are typed (32-bit integers, ascii strings, etc.)
  • Records are indexed;  each index represents a particular sorting order of the records
  • There is a default index.  There can be arbitrary number of indices.
  • Search functionality is provided as an add-on module.  User can add their search modules.
  • All persistent data are stored in one file
  • Ebase is tested under MS VC++ 6.0, gmake/gcc with Cygwin 20 beta, and gmake/gcc under Linux and Solaris.
Advantages of ebase include :
  • Robust error detection and handling
  • Small footprint and fast execution
  • Ultra-portable (based on C file interface)
  • Flexible data driver mechanism - supports arbitrary data types (e.g., image or audio data)
  • Flexible index driver mechanism - supports indexing over arbitrary data types and over arbitrary number of fields
Because of the advantages (and limitations too), ebase is very suitable for portable, small persistent data storage, such as those found by PIM (personal information management) applications, web databases (for login, equipment tracking), and small database applications (system registry, etc.).  Its small footprint and robust error handling make it ideal for applications running on embedded systems such as PDAs.

Ebase library uses C++ exception throw/catch mechanism to report a)application programming errors, 2) insufficient resources and 3) non-recoverable media errors.  It thus requires the compiler and the run-time environment to support C++ exception handling mechanism.