4 releases
Uses old Rust 2015
0.1.3 | Jan 2, 2017 |
---|---|
0.1.2 | Jan 2, 2017 |
0.1.1 | Jan 2, 2017 |
0.1.0 | Dec 31, 2016 |
#52 in #local-file
21KB
526 lines
kvlite
A key-value store backed by your local file system. Mostly a toy project to learn Rust.
Usage
First, add this to your Cargo.toml
:
[dependencies]
kvlite = "0.1.2"
Next, add this to your crate:
extern crate kvlite;
use kvlite::Store;
See documentation for library usage.
CLI Usage
With rust installed, you can use cargo install kvlite
to get the kvl
CLI tool.
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
:
A key-value store backed by your local file system.
The underlying hashmap uses an inefficient hashing algorithm to place keys and values into large and unoptimized buckets that it reads/writes from a file.
The file size is very large, and does not re-allocate memory. Also, the hashmap doesn't resize its keyspace. I may or may not fix these things.. this project was mostly just to learn Rust.
Reads are something like 2k QPS, writes 500 QPS. It's thread- and process-safe (probably).
Installation
Add this to your Cargo.toml
:
[dependencies]
kvlite = "0.1.2"
Examples
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"
Dependencies
~1.5MB
~37K SLoC