energyml-storage 0.3.0

Reads and writes EnergyML data stores: EPC files today, ETP dataspaces later, behind one abstraction.
Documentation

energyml-storage

Reads and writes EnergyML data stores behind one abstraction. EnergymlStorage is the mother trait, shaped after the ETP protocol (addressing by URI, plural operations, partial responses) rather than after a zip file; EpcStore implements it for EPC packages and also exposes a complete synchronous API, so an application that only reads local files never writes async. Arrays that live in external HDF5 files are located, read and written through pluggable backends.

The ETP implementation of the same trait lives in the sibling repository retp.

Design points: the registry of schema versions is passed in (nothing here names a version); a missing backend answers FeatureNotEnabled, never an empty array; one lookup door (EpcStore::lookup) resolves an identity to an object.

Features

Feature Default Effect
hdf5 no read and write arrays in HDF5 files; needs the HDF5 C library at build time

Example

use std::sync::Arc;
use energyml_storage::EpcStore;

let registry = Arc::new(energyml_schemas::all());
let store = EpcStore::open("model.epc", registry)?;
for summary in store.resources() {
    println!("{}", summary.uri);
}

energyml-schemas supplies the registry; resources() lists the package's objects.

Documentation

Licence

Apache-2.0. See LICENSE.