Full feature list#
Simple and structured way to represent data as a set of named properties within and between software.
Simple type system where data type are specified as a basic type and size. Supported basic types includes:
binary blob (any size)
boolean (system-dependent size, typically 8 bits)
integer (8, 16, 32, 64 bits)
unsigned integer (8, 16, 32, 64 bits)
float (32, 64, [80, 128] bits)
fixed string (any size, always NUL-terminated)
string pointer (pointer to malloc’ed string, NUL-terminated)
relation (subject-predicate-object triplet)
dimension (only intended for metadata)
property (only intended for metadata)
Supports units and multi-dimensional arrays.
Fully implemented metadata model as presented by Thomas Hagelien.
Builtin JSON, HDF5, RDF, YAML, PostgreSQL, csv, blob storage plugins (JSON is always available, the other depends on external libraries).
Plugin system for user-provided storage drivers.
Memory for metadata and instances is reference counted.
Lookup of metadata and instances at pre-defined locations (initiated from the DLITE_STORAGES environment variable).
Template-based code generation, including templates for C and Fortran.
Plugin system for mappings that maps instances of a set of input metadata to an output instance.
Fortran bindings.
Python bindings.
Embedding of Python allowing writing storage and mapping plugins in Python.
Full provenance in instance evolution; see Transactions.