Darkbird is an in-memory storage with persistent option

DarkBird is a Document oriented, high concurrency in-memory Storage , also persist data to disk to avoid loss any data

inspired by erlang mnesia

The darkbird provides the following :

  • Persistent - use Non-Blocking wal engine for persist data,
    also store data to multiple pages by total_page_size

  • In-memory - whole data stored in-memory
    with two mode ( DiskCopies, RamCopies )
    both stored in-memory but DiskCopies persist data to disk and
    after restart , darkbird load whole data to memory

  • Concurrency - darkbird use one of best high-concurrent HashMap (DashMap)[GitHub - xacrimon/conc-map-bench]
    and you don't need to use Mutex/RwLock for sync between thread,
    storage is complete safe to shared between threads

  • Migration - Darkbird storage model is (Key, Document)
    if you want change Document Model, can use migration::run
    for change all (Key, Document) already exist in disk
    this module should be use before storage opened

  • Event Handling - can subscribe any channel you want to storage, they
    get storage event (RQuery<Key, Document>, Subscribed(tokio::mpsc::Sender(Event<key, document>)))

Examples

The complete Examples on Link

Crate

darkbird = "1.1.0"

1 Like

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.