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
| nostrfy | strfry | |
|---|---|---|
| Langage | Rust | C++ |
| Licence | MIT ou Apache-2.0 | GPL-3.0 |
| Stockage | LMDB (aucune base externe) | LMDB (aucune base externe) |
| Configuration | Un seul nostrfy.toml, rechargement à chaud (SIGHUP) | strfry.conf, rechargement à chaud |
| NIP annoncés | 34 (36 implémentés, dont optionnels) | 11 NIP principaux |
| Groupes NIP-29 + LiveKit | Intégré | — |
| Serveur multimédia Blossom | Intégré (disque local ou S3/R2) | — |
| REST API | /api/v1 intégré | — |
| API de gestion | NIP-86 JSON-RPC avec administrateurs délégués | — |
| Negentropy (NIP-77) | Oui | Oui — strfry en est l’origine |
| Politiques d’écriture / plugins | Listes allow/deny intégrées + NIP-86 | Interface de plugins write-policy |
| Outil de migration | nostrfy migrate-strfry | strfry 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.