gRPC es un framework de código abierto para construir APIs distribuidas de alto rendimiento. A diferencia de REST, que a menudo trata la documentación de la API como un añadido, gRPC adopta un enfoque 'contract-first', definiendo la API mediante archivos .proto de Protocol Buffers. Estos archivos describen tanto las estructuras de datos (mensajes) como las operaciones disponibles (RPCs), generando automáticamente código cliente y servidor en varios lenguajes, asegurando la consistencia entre ambos.
La principal ventaja de gRPC radica en su soporte nativo para streaming, que va más allá de la simple codificación de fragmentos. Ofrece cuatro tipos de streaming: unario (solicitud-respuesta simple), servidor (una solicitud genera múltiples respuestas), cliente (múltiples solicitudes generan una respuesta) y bidireccional (comunicación en tiempo real). Además, gRPC permite el uso de metadatos, similares a los encabezados HTTP, para transportar información adicional como tokens de autenticación.
