Implementations

Relay software operators actually run

Pick based on hardware, language comfort, and whether you need payments or plugins on day one. All of these speak the core protocol.

Software Stack Fits Operator notes
strfry C++, LMDB Public and paid relays, Umbrel Fast, compact on disk, write-policy plugins, JSONL export, Negentropy sync. The default “boring infrastructure” choice.
nostr-rs-relay Rust, SQLite Personal relays, small VPS, Pi Single binary, light footprint. Plan for SQLite vacuum and online backup on busy instances.
nostream TypeScript, Postgres Paid relays with admin tooling Lightning hooks, richer moderation surfaces, heavier operational footprint.
khatru / rnostr / nostrd Go or Rust, often LMDB Custom relays, libraries Embeddable frameworks when you want policy in code rather than a plugin script.
GRAIN and filter proxies Go / sidecar Fine-grained allow/deny Whitelists, mute-list imports, IP cost accounting. Sit in front of a store-and-forward relay.

Typical production box: 2+ cores, 4–8 GB RAM, SSD with room to grow, a domain pointing at a dedicated IPv4, and a reverse proxy. A $5–$10 VPS is enough for a personal relay. Public firehoses are not.