{
    "meta": {
        "title": "Nostr Relay Implementations",
        "description": "Machine-readable comparison of 23 open-source Nostr relay implementations and frameworks by language, storage backend, and license.",
        "generated": "2026-06-20T01:16:56+00:00",
        "version": "1.0",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "license_name": "CC BY 4.0",
        "source": "https://d-central.tech/nostr-relay-implementations/",
        "record_count": 23,
        "disclaimer": "Compiled from each project repository and the awesome-nostr list (June 2026). Open-source projects change; verify the repo before deploying. Fields that could not be confirmed from a source are left blank."
    },
    "rows": [
        {
            "name": "strfry",
            "language": "C++",
            "storage": "LMDB",
            "license": "GPL-3.0",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/hoytech/strfry",
            "description": "High-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."
        },
        {
            "name": "nostr-rs-relay",
            "language": "Rust",
            "storage": "SQLite (experimental PostgreSQL)",
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/scsibug/nostr-rs-relay",
            "description": "Minimalistic Nostr relay written in Rust that persists data in SQLite, with experimental PostgreSQL support."
        },
        {
            "name": "khatru",
            "language": "Go",
            "storage": "Pluggable (via eventstore module, e.g. SQLite)",
            "license": "Unlicense",
            "category": "Nostr Relay Framework",
            "open_source": true,
            "repo": "https://github.com/fiatjaf/khatru",
            "description": "Go framework for building custom Nostr relays with pluggable storage, authentication, event-filtering policies and HTTP endpoints."
        },
        {
            "name": "nostream",
            "language": "TypeScript",
            "storage": "PostgreSQL (Redis for caching)",
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/Cameri/nostream",
            "description": "Nostr 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)."
        },
        {
            "name": "relayer",
            "language": "Go",
            "storage": "Pluggable (reference examples include PostgreSQL)",
            "license": "Unlicense",
            "category": "Nostr Relay Framework",
            "open_source": true,
            "repo": "https://github.com/fiatjaf/relayer",
            "description": "Go framework for building custom Nostr relay servers, including a reference relay implementation in its examples folder."
        },
        {
            "name": "rnostr",
            "language": "Rust",
            "storage": "LMDB",
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/rnostr/rnostr",
            "description": "High-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."
        },
        {
            "name": "HAVEN",
            "language": "Go",
            "storage": null,
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/bitvora/haven",
            "description": "Personal 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."
        },
        {
            "name": "Chorus",
            "language": "Rust",
            "storage": null,
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/mikedilger/chorus",
            "description": "Nostr 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."
        },
        {
            "name": "Citrine",
            "language": "Kotlin",
            "storage": "Local on-device database",
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/greenart7c3/Citrine",
            "description": "Android 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."
        },
        {
            "name": "nostr-relay-nestjs",
            "language": "TypeScript",
            "storage": "PostgreSQL",
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/CodyTseng/nostr-relay-nestjs",
            "description": "High-performance Nostr relay built with the NestJS framework and PostgreSQL, powered by the nostr-relay library."
        },
        {
            "name": "grain",
            "language": "Go",
            "storage": "nostrdb (LMDB-based)",
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/0ceanslim/grain",
            "description": "Configurable multipurpose Nostr relay written in Go (Go Relay Architecture for Implementing Nostr) with content filtering and hot-reload configuration."
        },
        {
            "name": "netstr",
            "language": "C#",
            "storage": "PostgreSQL",
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/bezysoftware/netstr",
            "description": "Nostr relay written in C# backed by PostgreSQL, with high test coverage and features such as proof-of-work support and search."
        },
        {
            "name": "NNostr",
            "language": "C#",
            "storage": "PostgreSQL",
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/Kukks/NNostr",
            "description": "C# implementation of both a Nostr relay server and client library, with Docker deployment and optional payment features via BTCPay Server."
        },
        {
            "name": "WoT Relay",
            "language": "Go",
            "storage": null,
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/bitvora/wot-relay",
            "description": "Nostr 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."
        },
        {
            "name": "sw2",
            "language": "Go",
            "storage": null,
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/bitvora/sw2",
            "description": "Nostr relay written in Go that displays and accepts notes only from whitelisted pubkeys, intended for private use, small communities, knowledge bases or dropboxes."
        },
        {
            "name": "Servus",
            "language": "Rust",
            "storage": "Plain-text files (database-free)",
            "license": "GPL-3.0",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/ibz/servus",
            "description": "Single-executable, database-free CMS/blogging engine written in Rust that also acts as a personal Nostr relay, Blossom server and NIP-05 identity provider."
        },
        {
            "name": "Immortal",
            "language": "Rust",
            "storage": null,
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/dezh-tech/immortal",
            "description": "High-performance, configurable Nostr relay written in Rust designed for scale and high-load (paid or community relays)."
        },
        {
            "name": "Shugur",
            "language": "Go",
            "storage": "CockroachDB",
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/Shugur-Network/relay",
            "description": "Production-grade Nostr relay written in Go that uses CockroachDB for distributed, high-availability storage."
        },
        {
            "name": "Alienos",
            "language": "Go",
            "storage": null,
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/dezh-tech/alienos",
            "description": "Plugin-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."
        },
        {
            "name": "knostr",
            "language": "Kotlin",
            "storage": null,
            "license": "MIT",
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/lpicanco/knostr",
            "description": "Nostr relay implemented in Kotlin using the Micronaut framework, supporting multiple NIPs."
        },
        {
            "name": "relay29",
            "language": "Go",
            "storage": null,
            "license": "MIT",
            "category": "Nostr Relay Framework",
            "open_source": true,
            "repo": "https://github.com/fiatjaf/relay29",
            "description": "Go library for creating NIP-29 (simple groups) relays, handling group state and moderation; works with khatru, strfry and relayer via wrappers."
        },
        {
            "name": "Bostr",
            "language": "JavaScript (Node.js)",
            "storage": null,
            "license": null,
            "category": "Nostr Relay Aggregator/Proxy",
            "open_source": true,
            "repo": "https://github.com/Yonle/bostr",
            "description": "Nostr bouncer / relay aggregator proxy written in Node.js, as listed in the awesome-nostr relays directory."
        },
        {
            "name": "Nosflare",
            "language": "JavaScript",
            "storage": "Cloudflare KV",
            "license": null,
            "category": "Nostr Relay Implementation",
            "open_source": true,
            "repo": "https://github.com/Spl0itable/nosflare",
            "description": "Serverless Nostr relay purpose-built for Cloudflare Workers and the Cloudflare KV store, as listed in the awesome-nostr relays directory."
        }
    ]
}