Skip to content

Introduction

strfry is a relay implementation written in C++ that supports multiple NIPs and has numerous features.

Features

strfry features include:

  • Support for most applicable NIPs: 1, 2, 4, 9, 11, 22, 28, 40, 70, 77

  • No external database required: All data is stored locally on the filesystem in a Lightning Memory-Mapped Database (LMDB)

  • Hot reloading of config file: No server restart needed for many config param changes

  • Zero downtime restarts, for upgrading binary without impacting users

  • WebSocket compression using permessage-deflate with optional sliding window, when supported by clients. Optional on-disk compression using zstd dictionaries.

  • Durable writes: The relay never returns an OK until an event has been confirmed as committed to the DB

  • Built-in support for real-time streaming (up/down/both) events from remote relays, and bulk import/export of events from/to jsonl files

  • negentropy based set reconciliation for efficient syncing with clients or between relays, accurate counting of events between relays, and more