Thanks to visit codestin.com
Credit goes to lib.rs

18 releases

0.2.3 Jan 1, 2023
0.2.1 Dec 28, 2022
0.2.0 Dec 7, 2021
0.1.14 Nov 21, 2021
0.1.7 Sep 30, 2021

#158 in Database implementations

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

460 downloads per month
Used in 3 crates (2 directly)

MIT license

125KB
2K SLoC

typed-sled - a database build on top of sled

API

sled is a high-performance embedded database with an API that is similar to a BTreeMap<[u8], [u8]>.
typed-sled builds on top of sled and offers an API that is similar to a BTreeMap<K, V>, where K and V are user defined types.

Example

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
struct SomeValue(u32);

// Creating a temporary sled database
let db = sled::Config::new().temporary(true).open().unwrap();

// The id is used by sled to identify which Tree in the database (db) to open
let tree = typed_sled::Tree::<String, SomeValue>::open(&db, "unique_id");

// insert and get, similar to std's BTreeMap
tree.insert(&"some_key".to_owned(), &SomeValue(10))?;

assert_eq!(tree.get(&"some_key".to_owned())?, Some(SomeValue(10)));
Ok(())


features

Multiple features for common use cases are available:

  • Search engine for searching through a tree's keys and values by using tantivy.
  • Automatic key generation.
  • Custom (de)serialization. By default bincode is used for (de)serialization, however custom (de)serializers are supported, making zero-copy or lazy (de)serialization possible.
  • Converting one typed Tree to another typed Tree with different key and value types.

Dependencies

~1.7–7.5MB
~126K SLoC