Skip to content

A (basically) infinitely stacking & extendable CoW database that has both readonly safety and incredible write speeds at the same time.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

GreenChild04/stack-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stack-db

A (basically) infinitely stacking & extendable CoW database that has both readonly safety and incredible write speeds at the same time.

Examples


Example of a basic in-memory binary database

Here is a basic in-memory database that only deals with binary indexes and data (that uses the allocators provided by the library)

use stack_db::prelude::*;

let allocator = SkdbMemAlloc; // or `SkdbDiskAlloc::new()`
let mut database = StackDB::new(allocator).unwrap();

// writing
database.write(256, b"hello, ").unwrap();
database.write(256+7, b"world").unwrap();

// reading
assert_eq!(&*database.read(256..268).unwrap(), b"hello, world");

// flush to save all changes
database.flush().unwrap();

// over-writting
database.write(256, b"H").unwrap();
database.write(256+7, b"W").unwrap();
database.write(268, b"!").unwrap();

// flush again
database.flush().unwrap();

// reading
assert_eq!(&*database.read(256..269).unwrap(), b"Hello, World!");

// rebase to save space
database.rebase(256).unwrap(); // rebase with a 256 byte buffer

About

A (basically) infinitely stacking & extendable CoW database that has both readonly safety and incredible write speeds at the same time.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages