Memoria is a data engineering framework in C++14 providing general purpose persistent dynamic data structures on top of in-memory, file or block storage, asynchronous IO subsystem for network and external memory and optional Qt integration for data structures visualization. Out of the box the following data structures are provided: map, vector, multimap, table, wide table and some others. Besides basic data structures there are also advanced ones: searchable sequences and wavelet trees. Many others can be designed using building blocks provided by the framework.
The core of the framework is two-level memory allocation scheme, with templatized C++ value semantics on top of it. Framework provides composable building blocks like array-mapped prefix sum trees and searchable sequences to build more sophisticated block-oriented data structures like dynamic vectors and labeled trees. Concurrency is handled via copy-on-write based Git-like branch/merge workflow, data structures are confluently-persistent.
See also project Mariana to use Memoria from Java.
See also QtCreator IDE Instructions for Linux and MacOS X.
The project is still in active development and is functionally incomplete may not even compile in your environment.