There is no commentSelect some text and then click Comment, or simply add a comment to this page from below to start a discussion.
KV Collaboration Deck
interface "wasi:kv/data/readwrite" {
use { Error, payload, key } from "wasi:kv/types"
// Get retrieves the value associated with the given key. It returns an Error if the key does not exist.
get: func(key: key) -> result<payload, Error>
// set creates a new key-value pair or updates an existing key-value pair.
set: func(key: key, value: stream<u8>) -> result<_, Error>
// delete a key-value pair. If the key does not exist, it returns an Ok() result.
delete: func(key: key) -> result<_, Error>
// check if the key exists.
exists: func(key: key) -> result<bool, Error>
}
Passing a pseudo-handles for a specific connection
interface "wasi:kv/data/readwrite" {
use { Error, payload, key } from "wasi:kv/types"
// Open retrieves the kv-handle
open: func(connection-string: string) -> result<kv-handle, Error>
// Get retrieves the value associated with the given key. It returns an Error if the key does not exist.
get: func(handle: kv-handle, key: key) -> result<payload, Error>
// set creates a new key-value pair or updates an existing key-value pair.
set: func(handle: kv-handle, key: key, value: stream<u8>) -> result<_, Error>
// delete a key-value pair. If the key does not exist, it returns an Ok() result.
delete: func(handle: kv-handle, key: key) -> result<_, Error>
// check if the key exists.
exists: func(handle: kv-handle, key: key) -> result<bool, Error>
}
Passing a string for a specific connection
interface "wasi:kv/data/readwrite" {
use { Error, payload, key } from "wasi:kv/types"
// Get retrieves the value associated with the given key. It returns an Error if the key does not exist.
get: func(handle: string, key: key) -> result<payload, Error>
// set creates a new key-value pair or updates an existing key-value pair.
set: func(handle: string, key: key, value: stream<u8>) -> result<_, Error>
// delete a key-value pair. If the key does not exist, it returns an Ok() result.
delete: func(handle: string, key: key) -> result<_, Error>
// check if the key exists.
exists: func(handle: string, key: key) -> result<bool, Error>
}
Example SDK experiences
// pseudo-handles:
conn = kv::open("foo")
val = kv::get(conn, "k")
// labels
val = kv::get("foo", "k")
// future star imports
kv::foo::get("k")