Tonic es una implementación en Rust de gRPC , un marco de trabajo RPC general, de código abierto y de alto rendimiento que prioriza los dispositivos móviles y HTTP/2 . Es una librería que se creó para ofrecer soporte de primera clase para async/await y para servir como componente fundamental en sistemas de producción escritos en Rust . Sus características principales son: Transmisión bidireccional E/S asíncrona de alto rendimiento. Interoperabilidad TLS con soporte de rustls . Balanceo de carga. Metadatos personalizados. Autenticación. Verificación de estado. Para conocer mejor esta librería haremos un proyecto cliente-servidor con Rust como lenguaje base. Requisitos: Tener Rust instalado. Tener Cargo instalado. Verifiquemos la versión de Rust: $ rustc -- version Verifiquemos la versión de Cargo: $ cargo version Empezando con Tonic y Rust (con Cargo) 1. Crearemos un proyecto Rust con ayuda de Cargo , una vez creado nos ubicar...
Hoy veremos un ejemplo de uso de gRPC con Go . Requisitos: Tener Go instalado. Tener Protoc instalado. Listamos la versión de Go instalada: $ go version En caso de no tener instalado Protoc, podemos hacer lo siguiente. Abrimos una terminal y tecleamos: $ winget install protobuf Listamos la versión instalada: $ protoc -- version Con esto hemos validado las herramientas necesarias. Antes de hacer nada, vamos a recordando un poco sobre los cuatro modos en que gRPC puede enviar y recibir datos: Unario: Funciona mediante un ciclo de solicitud y respuesta, donde el cliente envía una solicitud y el servidor devuelve una respuesta. Transmisión del servidor: Cuando solo el servidor envía un flujo de datos al cliente. Transmisión del cliente: Cuando solo el cliente envía un flujo de datos al servidor. Bidireccional: Cuando tanto el servidor como el cliente se envían datos mutuamente de forma simultánea. Esto es importante saber, ...