- 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 HDF5, JSON, YAML and PostgreSQL storage plugins
- 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