An open API service indexing awesome lists of open source software.

https://github.com/uzyn/sparkv

Expirable in-memory key-value store for Rust with no dependencies
https://github.com/uzyn/sparkv

in-memory-database kv-store no-dependencies no-deps rust rust-lang ttl

Last synced: about 1 month ago
JSON representation

Expirable in-memory key-value store for Rust with no dependencies

Awesome Lists containing this project

README

          

# SparKV

SparKV is an expirable in-memory key-value store for Rust.

## Features

1. Flexible expiration duration (a.k.a. time-to-live or TTL) per entry instead of database-wide common TTL.
1. This is similar to that of DNS where each entries of the same domain can have its own unique TTL.
2. Automatically clears expired entries by default.
3. String-based key-value store.
4. Fast data entry enforcements, including ensuring entry size, database size and max TTL.
5. SparKV is intentionally not an LRU cache.
6. Configurable.

## Usage

Add SparKV crate to your Cargo dependencies:

```sh
$ cargo add sparkv
```

Quick start

```rust
use sparkv::SparKV;

let mut sparkv = SparKV::new();
sparkv.set("your-key", "your-value"); // write
let value = sparkv.get("your-key").unwrap(); // read

// Write with unique TTL
sparkv.set_with_ttl("diff-ttl", "your-value", std::time::Duration::from_secs(60));
```

See `config.rs` for more configuration options.

## TODO

1. Documentations
1. Support generic data types

## License

MIT License

Copyright © 2024 U-Zyn Chua