Comparaison

nostrfy vs strfry

Les deux sont des relais Nostr en un binaire, stockent les événements dans LMDB et parlent le même protocole. Mais ils font des compromis différents : strfry est le relais C++ mature doté d’un système de plugins write-policy, tandis que nostrfy est un moteur écrit en Rust qui regroupe les fonctions dont l’opérateur a besoin — groupes, médias, REST, gestion — dans un binaire et un fichier de configuration.

En un coup d’œil

nostrfystrfry
LangageRustC++
LicenceMIT ou Apache-2.0GPL-3.0
StockageLMDB (aucune base externe)LMDB (aucune base externe)
ConfigurationUn seul nostrfy.toml, rechargement à chaud (SIGHUP)strfry.conf, rechargement à chaud
NIP annoncés34 (36 implémentés, dont optionnels)11 NIP principaux
Groupes NIP-29 + LiveKitIntégré—
Serveur multimédia BlossomIntégré (disque local ou S3/R2)—
REST API/api/v1 intégré—
API de gestionNIP-86 JSON-RPC avec administrateurs délégués—
Negentropy (NIP-77)OuiOui — strfry en est l’origine
Politiques d’écriture / pluginsListes allow/deny intégrées + NIP-86Interface de plugins write-policy
Outil de migrationnostrfy migrate-strfrystrfry import / export / sync

Licence

strfry est sous GPL-3.0, qui impose que les œuvres dérivées soient publiées selon les mêmes termes. nostrfy est sous double licence MIT ou Apache-2.0, donc il peut être intégré à des produits propriétaires et relicencié librement. Si votre relais fait partie d’une pile commerciale ou sous licence, c’est souvent la différence décisive.

Configuration et exploitation

  • nostrfy se configure via un seul nostrfy.toml : identité, limites, stockage, contrôle d’accès, Blossom et RPC au même endroit. La plupart des réglages se rechargent à chaud via SIGHUP.
  • Chaque option est validée avant le démarrage du relais par nostrfy check — types erronés, limites impossibles et combinaisons verrouillantes sont signalés avec des correctifs.
  • Le démon inclut la rotation des journaux, des statistiques en direct, un contrôle de santé et des métriques Prometheus ; la CLI gère les listes d’accès, les mises à jour et les migrations.

Fonctionnalités intégrées

Plutôt que d’ajouter des services annexes, nostrfy intègre ce dont un relais public a habituellement besoin :

Groupes NIP-29 + LiveKit

Groupes imposés par le relais, événements de modération et métadonnées de groupe signées par le relais, plus des salles audio/vidéo via LiveKit.

Serveur multimédia Blossom

Les téléversements adressés par contenu tournent sur leur propre nom d’hôte, sur disque local ou dans un bucket compatible S3 (AWS S3, Cloudflare R2).

REST API

API /api/v1 en lecture seule dans son propre thread de lecture : interrogez les événements par npub, nevent ou naddr, avec compteurs, statistiques et recherche.

Gestion NIP-86

API de gestion JSON-RPC avec authentification Bearer ou NIP-98, attributions de méthodes déléguées et codes d’invitation.

Les atouts de strfry

strfry reste un excellent choix : il a créé le protocole negentropy, prend en charge les redémarrages sans interruption et la compression WebSocket optionnelle, et son interface de plugins write-policy permet d’exécuter une logique arbitraire à chaque publication. Si vous avez besoin d’un bac à sable de plugins et de rien d’autre dans cette liste, strfry est parfait. Si vous préférez des groupes, des médias, une API REST et une gestion intégrés — ou une licence permissive — nostrfy est le chemin le plus court.

Migration depuis strfry

Vous n’avez pas à repartir de zéro. nostrfy migrate-strfry lit le propre format d’export de strfry, vérifie chaque événement et importe toute la base — y compris les suppressions NIP-09, les effets de bord de modération NIP-29 et les horodatages de première apparition. C’est hors ligne, testable à blanc et sûr à relancer.