Skip to content

Bitcoin accepted at checkout  |  Ships from Laval, QC, Canada  |  Expert support since 2016

Nostr Relay Implementations — Self-Hosted Relay Software Compared

Compare every major open-source Nostr relay implementation — the server software you self-host — by language, storage backend, license and category. Free CSV/JSON + REST under CC BY 4.0.

Quick answer

A Nostr relay is the server software that stores events and serves them to clients. Because the protocol is open, dozens of independent implementations exist in many languages, and anyone can self-host one — running your own relay is one more layer of decentralization. This reference compares 23 open-source relay implementations and frameworks by language, storage backend and license, from high-throughput relays like strfry (C++/LMDB) and rnostr (Rust/LMDB) to personal sovereign relays like HAVEN and Chorus and the frameworks (khatru, relayer) you build your own on.

strfry and rnostr lead on raw throughput; khatru and relayer are the Go frameworks most custom relays are built on; HAVEN, Chorus, Citrine and Servus target personal, self-sovereign use. All are open source — pick by language and storage backend you can operate.

Download CSV Download JSON REST API →

ImplementationLanguageStorageLicenseCategoryWhat it is
strfryC++LMDBGPL-3.0Nostr Relay ImplementationHigh-performance self-contained Nostr relay written in C++ that stores events in LMDB and supports efficient set-reconciliation syncing of events between relays using Merkle trees.
nostr-rs-relayRustSQLite (experimental PostgreSQL)MITNostr Relay ImplementationMinimalistic Nostr relay written in Rust that persists data in SQLite, with experimental PostgreSQL support.
khatruGoPluggable (via eventstore module, e.g. SQLite)UnlicenseNostr Relay FrameworkGo framework for building custom Nostr relays with pluggable storage, authentication, event-filtering policies and HTTP endpoints.
nostreamTypeScriptPostgreSQL (Redis for caching)MITNostr Relay ImplementationNostr relay written in TypeScript backed by PostgreSQL (with Redis), supporting many NIPs including encrypted messaging, proof-of-work and payments (renamed from nostr-ts-relay).
relayerGoPluggable (reference examples include PostgreSQL)UnlicenseNostr Relay FrameworkGo framework for building custom Nostr relay servers, including a reference relay implementation in its examples folder.
rnostrRustLMDBMITNostr Relay ImplementationHigh-performance, scalable Nostr relay written in Rust using LMDB for event storage (architecture inspired by strfry), with configurable extensions for authentication, rate limiting and full-text search.
HAVENGoMITNostr Relay ImplementationPersonal sovereign relay written in Go that combines four relays in one (private, chat, inbox, outbox) plus a built-in Blossom media server, with web-of-trust protection.
ChorusRustMITNostr Relay ImplementationNostr relay written in Rust that can run as a personal relay, open relay or Blossom server, with features such as IP banning, rate limiting and moderation tools.
CitrineKotlinLocal on-device databaseMITNostr Relay ImplementationAndroid application written in Kotlin that runs a Nostr relay on the phone, letting local clients send and receive events with import/export of stored data.
nostr-relay-nestjsTypeScriptPostgreSQLMITNostr Relay ImplementationHigh-performance Nostr relay built with the NestJS framework and PostgreSQL, powered by the nostr-relay library.
grainGonostrdb (LMDB-based)MITNostr Relay ImplementationConfigurable multipurpose Nostr relay written in Go (Go Relay Architecture for Implementing Nostr) with content filtering and hot-reload configuration.
netstrC#PostgreSQLMITNostr Relay ImplementationNostr relay written in C# backed by PostgreSQL, with high test coverage and features such as proof-of-work support and search.
NNostrC#PostgreSQLMITNostr Relay ImplementationC# implementation of both a Nostr relay server and client library, with Docker deployment and optional payment features via BTCPay Server.
WoT RelayGoMITNostr Relay ImplementationNostr relay written in Go (built on the khatru framework) that archives notes from users in your web of trust — people you follow and the people they follow.
sw2GoMITNostr Relay ImplementationNostr relay written in Go that displays and accepts notes only from whitelisted pubkeys, intended for private use, small communities, knowledge bases or dropboxes.
ServusRustPlain-text files (database-free)GPL-3.0Nostr Relay ImplementationSingle-executable, database-free CMS/blogging engine written in Rust that also acts as a personal Nostr relay, Blossom server and NIP-05 identity provider.
ImmortalRustMITNostr Relay ImplementationHigh-performance, configurable Nostr relay written in Rust designed for scale and high-load (paid or community relays).
ShugurGoCockroachDBMITNostr Relay ImplementationProduction-grade Nostr relay written in Go that uses CockroachDB for distributed, high-availability storage.
AlienosGoMITNostr Relay ImplementationPlugin-able, manageable (NIP-86) lightweight self-hosting stack written in Go combining a Nostr relay, Blossom media server and NIP-05 identity, with S3 backups and Tor support.
knostrKotlinMITNostr Relay ImplementationNostr relay implemented in Kotlin using the Micronaut framework, supporting multiple NIPs.
relay29GoMITNostr Relay FrameworkGo library for creating NIP-29 (simple groups) relays, handling group state and moderation; works with khatru, strfry and relayer via wrappers.
BostrJavaScript (Node.js)Nostr Relay Aggregator/ProxyNostr bouncer / relay aggregator proxy written in Node.js, as listed in the awesome-nostr relays directory.
NosflareJavaScriptCloudflare KVNostr Relay ImplementationServerless Nostr relay purpose-built for Cloudflare Workers and the Cloudflare KV store, as listed in the awesome-nostr relays directory.

Source: each project’s own GitHub repository, cross-referenced against the awesome-nostr list (June 2026). See also the Nostr clients comparison, the NIPs reference, the event kinds reference, the relay glossary entry, and the sovereign self-hosting catalog.