worker-kv
Rust bindings to Cloudflare Worker KV Stores using wasm-bindgen and js-sys.
Example
let kv = KvStore::create("Example")?; // or KvStore::from_this(&this, "Example") if using modules format Workers
// Insert a new entry into the kv.
kv.put("example_key", "example_value")?
.metadata(vec![1, 2, 3, 4]) // Use some arbitrary serialiazable metadata
.execute()
.await?;
// NOTE: kv changes can take a minute to become visible to other workers.
// Get that same metadata.
let (value, metdata) = kv.get_with_metadata::<Vec<usize>>("example_key").await?;
For a more complete example check out the full example.
How do I use futures in WebAssembly?
There currently is not a way to use a Future natively from WebAssembly but with the future_to_promise function from wasm_bindgen_futures we can convert it to a standard JavaScript promise, which can be awaited in the regular JavaScript context.