#p2p #iroh #gossip

iroh-smol-kv

A tiny replicated kv store that sync over an iroh-gossip topic

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

Download history 110/week @ 2025-09-19 185/week @ 2025-09-26 126/week @ 2025-10-03 11/week @ 2025-10-10 965/week @ 2025-10-17 691/week @ 2025-10-24 207/week @ 2025-10-31 431/week @ 2025-11-07

2,294 downloads per month

MIT/Apache

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