Le gRPC présente de nombreux avantages : cette technologie est relativement simple à mettre en œuvre, dans la mesure où elle utilise un IDL simple et très facile d’utilisation pour la création des fichiers .proto. De cette manière, même des programmes anciens peuvent être facilement complétés par une interface gRPC performante et il est ainsi possible de transférer beaucoup plus rapidement des fichiers volumineux.
Par ailleurs, le gRPC a fait l’objet de nombreux tests et est hautement évolutif, ce qui lui permet de mener à bien les communications les plus complexes et exhaustives, au sein d’architectures client/serveur connectées à l’échelle internationale par exemple. HTTP/2 augmente ses performances, entre autres, grâce à ses capacités de multiplexage et de streaming bidirectionnel. Des compressions d’en-têtes sont également possibles lorsque le volume de données des requêtes et réponses doit être significativement réduit dans le réseau.
La structure multi-couches et fortement normalisée du framework gRPC permet de réduire les efforts de programmation. De cette manière, les développeurs peuvent se concentrer en priorité sur l’implémentation des méthodes. En cas de besoin, les programmeurs et développeurs de systèmes profitent du libre accès au code source et peuvent procéder eux-mêmes à des ajustements.
Les Protocol Buffers et les compilateurs Protobuf correspondants permettent par ailleurs une communication sans limite : les divers systèmes d’exploitation, les composants variés des architectures client/serveur et les différents langages de programmation ne font plus obstacle à la communication. Ainsi, un logiciel écrit en C peut communiquer avec le logiciel Java. Des compilateurs Protobuf sont désormais disponibles pour de nombreux autres langages, par exemple pour C#, C++, Go, Objective-C, Java, Python, Node.js, Android Java, Swift, Ruby et PHP.
La flexibilité de gRPC présente également un gros avantage : il peut par exemple être utilisé de la même manière pour l’échange de données de microservices ou le partage de données d’applications mobiles avec des serveurs. Autre point positif : le protocole permet l’implémentation de technologies de sécurité modernes. Le gRPC dispose ainsi d’une fonction d’authentification intégrée et promeut l’utilisation de SSL/TLS pour l’authentification et le cryptage des échanges.
Parmi les points faibles de gRPC, on peut noter que : le test des interfaces gRPC doit faire l’objet d’améliorations sur la base de l’état actuel de développement. Les messages gRPC codés avec protobuf ne peuvent pas être lus par des humains. Lors de l’analyse du trafic de données et, notamment, lors de la recherche d’erreurs et des opérations de dépannage (débogage), des instances supplémentaires doivent donc être utilisées pour retranscrire le code sous une forme compréhensible et pour localiser les sources d’erreurs. D’autres inconvénients résultent de la mise en réseau d’architectures client/serveur distribuées. Le gRPC connecte des ordinateurs à distance et est donc plus vulnérable que des systèmes locaux. Il dépend de l’accès à un réseau stable et performant. Les réseaux, le trafic de données, les protocoles de transmission ainsi que le client et le serveur ne doivent présenter aucun point d’attaque susceptible d’intéresser les pirates informatiques. Un autre inconvénient est que le gRPC ne prend pas en charge la multidiffusion.