5个版本
0.1.2 | 2024年8月11日 |
---|---|
0.1.1 | 2024年8月11日 |
0.1.0 | 2024年8月11日 |
0.0.2 | 2024年8月11日 |
0.0.1 | 2024年8月11日 |
#4 in #libsql
每月275次下载
39KB
529 代码行
Kyval
Kyval是一个基于LibSQL的简单键值存储。该项目是Kyval Rust的分支,最初由 Christian Llontop 创建。通过使用LibSQL,Kyval为简单的数据存储需求提供了一种轻量级且灵活的替代方案。
主要变化:Kyval与原始Kyval Rust的主要区别在于使用LibSQL作为数据库后端,取代了SQLite。这一变化使Kyval在数据存储方面具有更大的灵活性。
用法
安装
cargo add kyval
与存储交互
use kyval::Kyval;
#[tokio::main]
async fn main() {
let kyval_store = KyvalStoreBuilder::new()
.uri(":memory:")
.table_name("kv_store")
.build()
.await.unwrap();
let keyv = Kyval::try_new(kyval_store).await.unwrap();
kyval.set("number", 42).await.unwrap();
kyval.set("number", 10).await.unwrap();
kyval.set("array", vec!["hola", "test"]).await.unwrap();
kyval.set("string", "life long").await.unwrap();
match kyval.get("number").await.unwrap() {
Some(number) => {
let number: i32 = serde_json::from_value(number).unwrap();
assert_eq!(number, 10);
}
None => assert!(false),
}
match kyval.get("string").await.unwrap() {
Some(string) => {
let string: String = serde_json::from_value(string).unwrap();
assert_eq!(string, "life long");
}
None => assert!(false),
}
match kyval.get("array").await.unwrap() {
Some(array) => {
let array: Vec<String> = serde_json::from_value(array).unwrap();
assert_eq!(array, vec!["hola".to_string(), "test".to_string()])
}
None => assert!(false),
}
match kyval.remove_many(&["number", "string"]).await {
Ok(_) => {}
Err(_) => assert!(false),
}
}
许可证
根据您的选择,在Apache License 2.0或MIT许可证下许可。
Unless you explicitly state otherwise, any contribution
intentionally submitted for inclusion in this project by you,
as defined in the Apache-2.0 license, shall be dual licensed
as above, without any additional terms or conditions.
本项目的版权归其贡献者所有。
有关更多信息,请参阅LICENSE-APACHE和LICENSE-MIT文件。
🤫 嘘!如果您喜欢我们的工作,您可以通过GitHub赞助来支持我们。
依赖项
~5–7.5MB
~134K SLoC