19个版本 (10个重大更新)
0.12.0 | 2023年9月19日 |
---|---|
0.11.0 | 2023年7月20日 |
0.10.0 | 2023年4月12日 |
0.9.1 | 2022年11月23日 |
0.3.0 | 2021年10月24日 |
#761 在 数据库接口
每月76 次下载
52KB
1K SLoC
WasmCloud键值接口
这是具有合同ID wasmcloud:keyvalue
的键值接口。此接口定义了一组用于与键值存储交互的通用操作。
请注意,一致性保证、备份、故障转移支持、复制等都是特定于个别提供者的关注点,而不是接口本身。
能力提供者实现
以下是一个实现 wasmcloud:keyvalue
合同的列表。如果您有一个社区/开源版本,请随时提交PR添加您的实现。
名称 | 供应商 | 描述 |
---|---|---|
Redis | wasmCloud | wasmCloud为Redis数据库提供的键值提供者 |
Vault | wasmCloud | wasmCloud为HashiCorp Vault 密钥引擎提供的键值提供者。 |
示例用法
🦀 Rust
检查kvstore中是否存在值
use wasmbus_rpc::actor::prelude::Context;
use wasmcloud_interface_keyvalue::{KeyValue, KeyValueSender};
async fn key_exists(ctx: &Context, key: &str) -> bool {
KeyValueSender::new().contains(ctx, key).await.is_ok()
}
增加数值
use wasmbus_rpc::actor::prelude::*;
use wasmcloud_interface_keyvalue::{IncrementRequest, KeyValue, KeyValueSender};
/// increment the counter by the amount, returning the new value
async fn increment_counter(ctx: &Context, key: String, value: i32) -> RpcResult<i32> {
let new_val = KeyValueSender::new()
.increment(ctx, &IncrementRequest { key, value })
.await?;
Ok(new_val)
}
🐭 Golang
检查kvstore中是否存在值
import "github.com/wasmcloud/actor-tinygo"
import keyvalue "github.com/wasmcloud/interfaces/keyvalue/tinygo"
func KeyExists(ctx *actor.Context, key string) (bool, error){
client := keyvalue.NewProviderKeyValue()
return client.Contains(ctx, key)
}
增加数值
import "github.com/wasmcloud/actor-tinygo"
import keyvalue "github.com/wasmcloud/interfaces/keyvalue/tinygo"
func IncrementCounter(ctx *actor.Context, key string, value int32) (int32, error) {
client := keyvalue.NewProviderKeyValue()
return client.Increment(ctx, keyvalue.IncrementRequest{key, value})
}
依赖关系
~12–30MB
~487K SLoC