Difference between revisions of "Metakit"

From Bauman National Library
(References)
Line 8: Line 8:
  
 
== General ==
 
== General ==
 +
 +
Overview
 
* Both the code and datafiles are portable. All byte-ordering managed by the library.
 
* Both the code and datafiles are portable. All byte-ordering managed by the library.
 
* Store multiple nested data structures, to create document-centric applications.
 
* Store multiple nested data structures, to create document-centric applications.

Revision as of 07:33, 21 April 2016

Metakit is an efficient embedded database library with a small footprint. It fills the gap between flat-file, relational, object-oriented, and tree-structured databases, supporting relational joins, serialization, nested structures, and instant schema evolution. There is a C++ API, a Python binding called Mk4py, and a Tcl binding called Mk4tcl. You can manipulate and exchange data between any of these.

Data files are portable. The library has been used on Unix, Windows, Macintosh, VMS, and others, spanning a range of 16- to 64-bit architectures, from PDA's to S390's.

Metakit is in use in various commercial projects and products on millions of desktops.

General

Overview

  • Both the code and datafiles are portable. All byte-ordering managed by the library.
  • Store multiple nested data structures, to create document-centric applications.
  • You'll have to see this to believe it: restructure files on-the-fly, while open.
  • Complementing commit/rollback of changes, data can also be serialized.
  • The use of Stable Storage ensures that files cannot be corrupted by crashes.
  • Files are opened without reading data. Memory-mapped files if O/S supports it.
  • The API mimics container classes. Quickly get sizes and iterate over rows.
  • Sorting, relational join / group by, set operations, permutations, hashing.
  • The largest int defines storage format. String/binary data is stored as var-sized.
  • Can be linked shared or statically, for hassle-free deployment of components.
  • The library is extremely small, unused functions are stripped off in static links.
  • Only a small interface is exposed. One header file lists all the classes you need.
  • Use from Python and Tcl

References