#stack #readonly-history

bin+lib stack-db

一个(基本上)无限堆叠和可扩展的CoW数据库,同时具有只读安全和惊人的写入速度。

2个版本

0.3.3 2024年8月11日
0.3.2 2024年3月7日
0.2.0 2024年3月3日
0.1.0 2024年3月3日

#843数据库接口

Download history 39/week @ 2024-06-30

每月311次下载
thoughts 中使用

MIT/Apache

30KB
517

stack-db

一个(基本上)无限堆叠和可扩展的CoW数据库,同时具有只读安全和惊人的写入速度。

示例


基本内存二进制数据库示例

这是一个仅处理二进制索引和数据的内存数据库(使用库提供的分配器)

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

无运行时依赖