4 个版本

使用旧版 Rust 2015

0.1.3 2017年1月2日
0.1.2 2017年1月2日
0.1.1 2017年1月2日
0.1.0 2016年12月31日

#50 in #local-file

MIT 许可证

21KB
526

kvlite

由本地文件系统支持的键值存储。主要是一个用于学习 Rust 的玩具项目。

文档

用法

首先,将以下内容添加到您的 Cargo.toml

[dependencies]
kvlite = "0.1.2"

然后,将以下内容添加到您的 crate

extern crate kvlite;

use kvlite::Store;

请参阅库用法文档。

命令行界面用法

安装 rust 后,您可以使用 cargo install kvlite 命令来获取 kvl 命令行工具。

usage: kvl <command> [<args>]

kvlite is a key-value store backed by the local file system.

commands:
    set <key> <value>        Create or update a key's value.
    get <key>                Look up a key's value.
    del <key>                Remove a key.

lib.rs:

由本地文件系统支持的键值存储。

底层的哈希表使用一种低效的哈希算法,将键和值放入大型的未优化的桶中,并从文件中读取/写入这些桶。

文件大小非常大,不会重新分配内存。此外,哈希表不调整其键空间。我可能会也可能不会修复这些问题……这个项目主要是为了学习 Rust。

读取大约为 2k QPS,写入 500 QPS。它是线程安全和进程安全的(可能)。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
kvlite = "0.1.2"

示例

extern crate kvlite;

use kvlite::FileHashMap;

let kv = FileHashMap::new("myfile.kvlite");

kv.insert("foo", "bar");

let foo = kv.get("foo").unwrap();

println!("foo: {}", foo);  // prints: "foo: bar"

依赖项

~1.5MB
~37K SLoC