Clone wiki

memoria / Home


Memoria is a C++14 framework providing general purpose dynamic data structures on top of key-value, object, file or block storage. 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 sematics 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.

For more details check this introduction. A little-bit outdated Memoria hacker's guide is here.

See also project Mariana to use Memoria from Java.

The project is still in active development and is functionally incomplete.