#key-value-store #kv #database

bin+lib rskey

A simple persistent key-value store that wraps HashMap, with a basic CLI tool to list, get, and set key-value pairs

4 releases (2 breaking)

0.3.0 Aug 16, 2024
0.2.0 Jun 23, 2024
0.1.1 May 26, 2024
0.1.0 May 26, 2024

#1159 in Command line utilities

43 downloads per month

MIT/Apache

16KB
150 lines

Crate Docs CI Audit Maintenance

rskey

A simple persistent key-value store that wraps HashMap.

Getting started

use rskey::Store;
use tempfile::TempDir;

let tmp_dir = TempDir::new()?;
let mut s = Store::open_or_create(&tmp_dir.path().join("data.kv"))?;
s.data.insert("key1".to_string(), "value1".to_string());
assert_eq!("value1", s.data.get("key1").unwrap());

Iteration

use rskey::Store;
use tempfile::TempDir;

let tmp_dir = TempDir::new()?;
let mut s = Store::<String>::open_or_create(&tmp_dir.path().join("data.kv"))?;
s.data.insert("key1".to_string(), "value1".to_string());
s.data.insert("key2".to_string(), "value2".to_string());
for (key, value) in &s.data {
    println!("{key} = ${value}");
}

A basic CLI tool is also included to list, get, and set key-value pairs.

Installation

cargo install rskey

Usage

The rskey tool expects to find a data file named store.kv in the current directory. If there is no such file, one will be created as soon as you set a key.

Listing all data

rskey list
key1: value1
key2: value2

Getting a value by key

rskey get key1
key1: value1

Setting a key-value pair

rskey set key3 value3

Current version: 0.3.0

License: MIT OR Apache-2.0

Dependencies

~0.7–1.6MB
~35K SLoC