Prise en charge des flux
- @grpc/grpc-js:
@grpc/grpc-js
prend en charge les flux unidirectionnels et bidirectionnels, permettant des communications gRPC complètes entre le client et le serveur. Cette bibliothèque est idéale pour les applications qui nécessitent des interactions complexes et des échanges de données en temps réel. - @improbable-eng/grpc-web:
@improbable-eng/grpc-web
prend en charge les flux unidirectionnels et bidirectionnels, offrant une meilleure expérience pour les applications Web qui nécessitent des communications gRPC plus dynamiques. La prise en charge des flux bidirectionnels est un atout pour les applications nécessitant des échanges de données en temps réel. - grpc-web:
grpc-web
prend en charge les appels gRPC unidirectionnels, mais la prise en charge des flux bidirectionnels est limitée. Cette bibliothèque est plus adaptée aux communications simples où les flux complexes ne sont pas nécessaires.
Compatibilité avec les navigateurs
- @grpc/grpc-js:
@grpc/grpc-js
est conçu pour Node.js et n'est pas destiné à être utilisé dans les environnements de navigateur. Il utilise des fonctionnalités spécifiques à Node.js, ce qui le rend inadapté pour les applications Web. - @improbable-eng/grpc-web:
@improbable-eng/grpc-web
est conçu pour être utilisé dans les navigateurs et offre une meilleure compatibilité avec les applications Web modernes. Il est particulièrement utile pour les applications qui nécessitent une communication gRPC tout en restant compatibles avec les normes Web. - grpc-web:
grpc-web
est également conçu pour les environnements de navigateur et fonctionne bien avec les applications Web. Il est léger et facile à utiliser, ce qui en fait un bon choix pour les projets qui nécessitent une intégration rapide avec les services gRPC.
Configuration du serveur
- @grpc/grpc-js:
@grpc/grpc-js
nécessite une configuration de serveur gRPC standard, sans modifications spéciales. Il fonctionne avec les serveurs gRPC existants et prend en charge toutes les fonctionnalités gRPC. - @improbable-eng/grpc-web:
@improbable-eng/grpc-web
nécessite un proxy gRPC pour fonctionner correctement dans les environnements Web. Cela peut nécessiter une configuration supplémentaire sur le serveur pour gérer les requêtes gRPC Web. - grpc-web:
grpc-web
nécessite également un proxy gRPC pour gérer les requêtes des clients Web. Il est compatible avec les serveurs gRPC existants, mais un proxy est nécessaire pour traduire les requêtes gRPC Web.
Simplicité d'utilisation
- @grpc/grpc-js:
@grpc/grpc-js
offre une API simple et intuitive pour les développeurs familiarisés avec gRPC. Cependant, sa complexité peut augmenter avec l'utilisation de fonctionnalités avancées. - @improbable-eng/grpc-web:
@improbable-eng/grpc-web
fournit une API conviviale pour les développeurs, en particulier ceux qui travaillent avec des applications Web. La documentation est claire et facilite l'intégration rapide. - grpc-web:
grpc-web
est très simple à utiliser, avec une API minimaliste qui facilite l'intégration des services gRPC dans les applications Web. Sa simplicité en fait un excellent choix pour les projets qui nécessitent une solution rapide.
Exemple de code
- @grpc/grpc-js:
Exemple d'appel gRPC avec
@grpc/grpc-js
const grpc = require('@grpc/grpc-js'); const protoLoader = require('@grpc/proto-loader'); // Charger le fichier proto const packageDefinition = protoLoader.loadSync('service.proto'); const proto = grpc.loadPackageDefinition(packageDefinition); // Créer un client gRPC const client = new proto.MyService('localhost:50051', grpc.credentials.createInsecure()); // Appeler une méthode gRPC client.myMethod({ name: 'World' }, (error, response) => { if (error) { console.error('Erreur:', error); } else { console.log('Réponse:', response); } });
- @improbable-eng/grpc-web:
Exemple d'appel gRPC avec
@improbable-eng/grpc-web
import { grpc } from '@improbable-eng/grpc-web'; import { MyService } from './generated/service_pb'; // Appeler une méthode gRPC grpc.unary(MyService.MyMethod, { request: { name: 'World' }, host: 'https://your-grpc-server.com', onEnd: (res) => { if (res.status === grpc.StatusOK) { console.log('Réponse:', res.message); } else { console.error('Erreur:', res); } }, });
- grpc-web:
Exemple d'appel gRPC avec
grpc-web
import { grpc } from '@improbable-eng/grpc-web'; import { MyService } from './generated/service_pb'; // Appeler une méthode gRPC grpc.unary(MyService.MyMethod, { request: { name: 'World' }, host: 'https://your-grpc-server.com', onEnd: (res) => { if (res.status === grpc.StatusOK) { console.log('Réponse:', res.message); } else { console.error('Erreur:', res); } }, });