darkbird 2.5.0

HighConcurrency, RealTime, InMemory storage inspired by erlang mnesia
Documentation

DarkBird

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

The darkbird provides the following:

  • Persistent - use Non-Blocking write-ahead-logging engine for persistency data, also store data to multiple pages with total_page_size

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

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

  • Indexing - darkbird support indexing even dynamically can decision about which fields in document be index to find that document very fast

  • 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

  • Persist to database - copy storage to (postgres/cassandra/scylla) and load from that

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

Vsn 2.0.0

  • Improve Performance

  • Persistent Copy whole data to Database and load from that

Vsn 2.5.0

  • Indexing

Examples

The complete Examples on Link.

Crate

darkbird = "2.0.0"