4 releases (2 breaking)
Uses new Rust 2024
| 0.3.1 | Oct 17, 2025 |
|---|---|
| 0.3.0 | Oct 17, 2025 |
| 0.2.0 | Sep 30, 2025 |
| 0.1.0 | Sep 22, 2025 |
#1379 in Database interfaces
2,294 downloads per month
50KB
1K
SLoC
A small, gossip-based, eventually consistent key-value store.
The entry point is the Client struct, which can be created with a
GossipTopic and a Config.
Writing to the store requires a WriteScope, which is created
from the client using a SecretKey.
You can read from the store with Client::get, but mostly you will
create a subscription using Client::subscribe and then get updates
of type SubscribeItem.
Subscriptions can be restricted using a Filter. You can also specify
if you want just the current state or future updates, using SubscribeMode.
Entries in the database expire after not being modified for a certain duration,
which can be specified in the ExpiryConfig.
Gossip protocol messages and helpers
Utility functions for working with strings and nanosecond timestamps.
iroh-smol-kv
A tiny in memory replicated key value store that syncs via an iroh-gossip topic.
The store provides a two level map, where the first level is a scope (a PublicKey) and the second level is an arbitrary Bytes key. Values are Bytes, but come with a timestamp.
Values contain a signature over (key, value, timestamp) so they
can be replicated.
The store can be observed, with filters on scope, key and timestamp.
Dependencies
~50–87MB
~1.5M SLoC