Skip to content

feat(Stores): Create first version of key-value storage.

Siddharth Singh requested to merge lmdb-storage-backend into main

This MR introduces a key-value storage backend to nostrify. Closes #1 (closed) when merged.

Done:

  • Querying by tags, kind, author, timestamp, limiting (FTS is out of scope at the moment)
  • Event insertion with replacements and kind 5s
  • Genericize for any k-v database - the implementation is based on Deno's built in KV store. That gives us Deno KV's hosted FoundationDB for free, as well as the SQLite-backed local version, and the self-hostable SQLite Deno KV implementation. Adapters can be written by implementing Deno.Kv for any TypeScript class and passing an instance of that class into NDenoKvDatabase.

To do:

  • Error handling, robust-ification, polish
Edited by Siddharth Singh

Merge request reports