Moteurs de synchronisation local-first
Une alternative à PouchDB qui n’a pas besoin d’un CouchDB
IndexedDB dans le navigateur, les mêmes données sur un autre appareil, et une conception qui traite le hors-ligne comme normal plutôt que comme une erreur.
Ce qu’est PouchDB
Dans ses propres termes.
Une base de données JavaScript qui tourne dans le navigateur, sur IndexedDB, et se réplique avec CouchDB ou tout ce qui parle son protocole de réplication. Bidirectionnelle, incrémentale, avec détection de conflits par arbres de révisions, et présente depuis plus de dix ans.
Côte à côte
Où ils se séparent.
| s3nd | PouchDB | |
|---|---|---|
| Ce que c’est | Une CLI, une bibliothèque et des hooks React sur votre propre bucket S3 | Base de données navigateur avec réplication CouchDB |
| Où vivent les données | Votre bucket : S3, R2, MinIO, Scaleway, Wasabi | Un serveur CouchDB, ou un compatible |
| Les deux côtés en ligne en même temps | Non. Le code est utilisé plus tard, jusqu’à expiration | Non |
| Depuis votre app web | Oui, via une route sur votre serveur | Oui |
| Comptes | Aucun. Le code est toute la poignée de main | Authentification CouchDB |
| Hébergement | Votre bucket, plus votre serveur quand un navigateur participe | CouchDB auto-hébergé ou hébergé |
| Prix | Gratuit. Vous payez votre fournisseur de stockage pour quelques objets qui expirent | Gratuit |
| Licence | MIT | Apache-2.0 |
Les différences
Ce qui change vraiment.
Une base ou un snapshot de la vôtre
PouchDB est la base, avec son modèle de documents et ses révisions. s3nd laisse votre base tranquille, quelle qu’elle soit, et en déplace un export.
Un CouchDB ou un bucket
La réplication a besoin d’un CouchDB, ou d’un serveur compatible, qui tourne quelque part. s3nd a besoin de stockage objet et de rien d’autre.
Réplication continue ou code
PouchDB synchronise tant qu’il est connecté. s3nd déplace les données une fois, quand l’utilisateur le demande, et le code est le seul identifiant.
La décision
Choisissez celui qui convient.
Choisissez PouchDB quand
- Vous voulez une base qui se synchronise, avec les révisions et les conflits comme concepts de premier ordre.
- Un CouchDB que vous faites déjà tourner, ou un hébergé que vous êtes content de louer.
- La réplication bidirectionnelle continue est la fonctionnalité.
Choisissez s3nd quand
- Vous gardez votre propre schéma IndexedDB et votre propre wrapper.
- Du stockage objet est tout ce que vous voulez faire tourner.
- Nouvel appareil avec un code, sauvegarde, ou export chiffré.
Plus de comparaisons
Outil par outil.
Déposez un fichier. Donnez le code.
Pointez-le sur le bucket que vous payez déjà. Rien à déployer, aucune inscription, personne au milieu.