PocketBase : un back-end open source condensé dans un seul fichier et composé d'une base de données SQLite intégrée avec la validation des données
une API REST et des fonctions d'authentification

Il y a plusieurs façons de procéder lorsque vous construisez un produit qui nécessite un back-end : construire un back-end à partir de zéro ou prendre un fournisseur de back-end en tant que service comme Google Firebase, AWS Amplify ou le sujet de l'article PocketBase. PocketBase est un back-end open source composé d'une base de données SQLite intégrée avec validation des données, abonnements en temps réel, fonctions d'authentification et de stockage de fichiers multimédias et une API REST. Il est entièrement portable, ne nécessite qu'une installation minimale et s'intègre à des technologies populaires comme Vue, Svelte, React, et Flutter. PocketBase est écrit en Go.

PocketBase est un outil minimaliste créé par le développeur de logiciels bulgare Gani Georgiev. Il présente PocketBase comme une solution back-end complète pour les développeurs d'applications SaaS et mobiles à la recherche d'une installation simple, basée sur des fichiers. PocketBase est un outil open source visant à rationaliser le processus de développement en offrant des fonctionnalités essentielles de back-end dans un seul fichier exécutable. Son approche conviviale permet aux développeurs de mettre en œuvre une fonctionnalité dorsale robuste avec un minimum d'installation. Voici ci-dessous les caractéristiques essentielles de PocketBase :

  • fichier exécutable unique : l'ensemble du back-end est condensé dans un seul fichier exécutable, ce qui élimine les installations complexes et simplifie votre environnement de développement ;
  • base de données en temps réel : PocketBase intègre une base de données en temps réel (SQLite) qui permet une synchronisation transparente des données entre les applications clientes ;
  • authentification des utilisateurs : système intégré d'authentification des utilisateurs qui prend en charge oAuth et l'ouverture de session par courriel pour protéger et gérer efficacement l'accès des utilisateurs ;
  • API personnalisable : PocketBase propose une API extensible qui peut être adaptée aux besoins spécifiques de votre SaaS ou de votre application mobile ;
  • stockage de fichiers : capacités de stockage de fichiers efficaces pour gérer et servir le contenu multimédia au sein de votre application sans avoir besoin de services supplémentaires.
  • axé sur la sécurité : des mesures de sécurité sont intégrées pour protéger l'intégrité des données de votre application et la confidentialité des utilisateurs ;
  • synchronisation locale et à distance : PocketBase offre des options de synchronisation locale et distante, facilitant les capacités hors ligne et la sauvegarde des données ;
  • tableau de bord de l'administrateur : le tableau de bord de l'administrateur vous permet de créer et de gérer des collections dans la base de données. Vous pouvez également télécharger des fichiers, afficher les fichiers journaux et configurer les paramètres d'envoi des courriels.


PocketBase peut être téléchargé directement comme application autonome ou être utilisé comme un framework/toolkit Go qui vous permet de construire votre propre logique commerciale spécifique à l'application et d'avoir un seul exécutable portable à la fin. Selon la documentation, PocketBase peut facilement servir plus de 10 000 connexions simultanées et persistantes en temps réel sur 6 serveurs privés virtuels, ce qui en fait un choix de back-end abordable pour les petites et moyennes applications. PocketBase évolue verticalement, ce qui signifie que vous devez ajouter plus de CPU et de RAM pour augmenter la puissance de traitement.

Nom : 68747470733a2f2f692e696d6775722e636f6d2f3571696d6e6d352e706e67.png
Affichages : 36827
Taille : 35,5 Ko

PocketBase souffre également d'autres limites par rapport aux alternatives bien établies comme Firebase ou Amplify. « PocketBase a gagné du terrain récemment et semble être un projet intéressant (même s'il manque encore beaucoup de fonctionnalités pour le moment). Il utilise SQLite (il n'y a pas d'autres options et il ne semble pas prévu d'en supporter d'autres), mais en mode WAL, ce qui le rend plus performant que beaucoup d'autres bases de données. En outre, vous pouvez l'étendre comme un framework Web Go si nécessaire, et l'application Web et la base de données se compilent en un seul binaire, ce qui semble plutôt sympa », a écrit un critique.

Quelques alternatives à PocketBase

Firebase

Firebase est l'une des principales alternatives à PocketBase. Firebase est généralement une plateforme fiable et complète qui offre une gamme de fonctionnalités utiles, dont l'authentification, une base de données NoSQL en temps réel, des fonctions personnalisées pour la logique commerciale, le stockage de fichiers et l'hébergement. Il dispose également d'un SDK côté client, est facile à démarrer et ne nécessite que quelques clics pour être configuré. Mais selon les utilisateurs, l'un des problèmes de Firebase est son extensibilité limitée. Il offre des services tels que des fonctions cloud et des extensions pour aider à combler le fossé.

Mais ces services ne sont pas aussi flexibles que l'extensibilité de PocketBase. En comparaison, PocketBase semble offrir un niveau plus élevé de personnalisation et de flexibilité pour la création d'API et d'itinéraires personnalisés. Et selon les commentaires sur le sujet, si votre cas d'utilisation nécessite plus d'extensibilité, c'est-à-dire des intégrations tierces, une logique commerciale personnalisée, la conformité des transactions, alors PocketBase serait un meilleur choix. En outre, Firestore, la base de données utilisée par Firebase, est une plateforme propriétaire et ne fournit aucun outil pour exporter ou importer des données en dehors de BigQuery.

Cela peut rendre difficile la migration des données vers ou depuis Firestore, ce qui peut poser des problèmes aux développeurs. « La migration des données est une priorité absolue lorsque l'on utilise PocketBase », a écrit un utilisateur. Cependant, comme souligné plus haut, PocketBase évolue verticalement, ce qui signifie que vous devez ajouter plus de CPU et de RAM pour augmenter la puissance de traitement. Si vous avez une grande application, envisagez un fournisseur de back-end comme Firebase qui permet une mise à l'échelle horizontale. Toutefois, voici quelques inconvénients relevés par les utilisateurs de Firebase :

  • le coût : bien que Firebase soit gratuit, il peut s'avérer coûteux pour les projets plus importants ou plus complexes, en particulier si vous devez stocker beaucoup de données ou gérer un volume de trafic élevé ;
  • contrôle limité : Firebase est un service entièrement géré, ce qui signifie que vous n'avez pas le contrôle de l'infrastructure sous-jacente. Cela peut être un inconvénient si vous avez besoin de personnaliser certains aspects de votre environnement serveur ;
  • modèle de données NoSQL : Firebase utilise un modèle de données NoSQL, qui peut être moins flexible qu'une base de données relationnelle traditionnelle. Il peut être plus difficile d'effectuer des requêtes complexes ou d'assurer l'intégrité des données avec une base de données NoSQL ;
  • évolutivité limitée : bien que Firebase puisse évoluer horizontalement pour gérer l'augmentation du trafic, il peut être plus difficile de le faire évoluer par rapport à une infrastructure traditionnelle sur laquelle vous avez plus de contrôle ;
  • limites de l'intégration : Firebase s'intègre à d'autres services de Google Cloud Platform, mais il n'est pas toujours facile de l'intégrer à des technologies non Google ;
  • fonctions de sécurité limitées : bien que Firebase comprenne certaines fonctions de sécurité, il n'offre pas un ensemble de contrôles de sécurité aussi robuste qu'une solution autogérée.


AppWrite

AppWrite est une plateforme open source basée sur le cloud qui offre une gamme d'outils et de services pour la création d'applications Web et mobiles. Elle inclut des fonctionnalités telles qu'une base de données en temps réel, l'authentification, le stockage et des fonctions sans serveur. L'une des principales différences entre AppWrite et les plateformes rivales est qu'il met l'accent sur les API. Il est donc bien adapté aux développeurs qui souhaitent créer des API ou intégrer leurs applications à d'autres API. Il est conçu pour être flexible, sécurisé et évolutif. Cependant, les utilisateurs ont relevé quelques désavantages de AppWrite que sont :

  • complexité : AppWrite serait une plateforme plus complexe que les services entièrement gérés comme Firebase, et sa mise en place et sa maintenance requièrent une plus grande expertise technique ;
  • soutien limité de la communauté : en tant que projet open source, AppWrite dispose d'une communauté d'utilisateurs et de contributeurs plus restreinte que les plateformes plus établies. Cela peut rendre plus difficile la recherche de réponses à des questions ou la résolution de problèmes ;
  • intégrations limitées : bien qu'AppWrite offre une gamme d'intégrations avec d'autres technologies et services, il ne dispose pas d'autant d'intégrations préconstruites que les plateformes plus établies ;
  • coûts d'hébergement : si l'utilisation et la modification d'AppWrite sont gratuites, l'hébergement et l'assistance peuvent s'avérer coûteux pour les projets plus importants ou plus complexes.


Supabase

Supabase est une alternative open source à PocketBase qui offre un grand nombre de fonctionnalités similaires : une base de données en temps réel, l'authentification et l'hébergement. L'une des principales différences avec PocketBase est que Supabase est construit au-dessus de PostgreSQL, qui est un système de gestion de base de données open source populaire. Cela signifie que les développeurs ont plus de contrôle sur leurs données. Supabase peut évoluer horizontalement pour faire face à l'augmentation du trafic et peut être facilement intégré à d'autres services cloud pour une plus grande évolutivité.


Selon la documentation de l'outil, Supabase offre un ensemble riche d'API et d'intégrations avec d'autres technologies, ce qui facilite son extension et sa construction. Il inclut des fonctions de sécurité robustes, y compris le support du chiffrement SSL et l'authentification de l'utilisateur. Si Supabase offre plusieurs avantages par rapport à d'autres plateformes, il y a aussi quelques inconvénients potentiels à prendre en compte :

  • dépendance à l'égard de PostgreSQL : Supabase s'appuie sur la base de données PostgreSQL, ce qui signifie que vous êtes limité aux caractéristiques et fonctionnalités de cette base de données. Si vous avez besoin d'un support pour une autre base de données, vous devrez peut-être chercher ailleurs ;
  • complexité ;
  • soutien limité de la communauté ;
  • documentation limitée ;
  • intégrations limitées.


Source : PocketBase (1, 2)

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous du back-end PocketBase et de ses fonctionnalités ?
Avez-vous une expérience avec PocketBase ? Si oui, partagez votre expérience
Quelle comparaison faites-vous entre PocketBase et les plateformes rivales ?
PocketBase a-t-il de détrôner des plateforme établies comme Firebase à l'avenir ?

Voir aussi

La version 2.0 de Kiss, le framework full-stack open source basé sur Java, est désormais disponible et permet le développement d'applications web professionnelles sécurisées, robustes et rapides

Un développeur efface accidentellement la base de données de son entreprise. Il raconte son expérience et tire des leçons qui pourraient être utiles aux équipes techniques

Postgres 16 est désormais disponible dans Azure Cosmos DB for PostgreSQL, alimenté par Citus