A partir de una definición de servicio en un archivo .proto, gRPC proporciona complementos de compilación de protobuffers que generan código del lado del cliente y del servidor. Los usuarios de gRPC normalmente llaman a estas API en el lado del cliente e implementan la API correspondiente en el lado del servidor.

Hay dos formas de trabajar con protobuffers y generación de código en gRPC; dinámico o estático. En estático, generaremos tipos y código a partir de nuestrosprotobuffers, pero en dinámico no generaremos tipos de protobuffers y usaremos el código en su lugar, para el caso dinámico puede ser una opción bastante buena cuando se trabaja con JavaScript directamente.