Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como http2

Tonic: gRPC con Rust

  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...

gRPC con Go

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, ...

gRPC con Python

  Hoy veremos un ejemplo de uso de gRPC con Python . Para ello verificaremos la versión de Python y Pip instalados en nuestro sistema, ya que gRPC requiere al menos que se tenga la versión 3.7 para Python y la versión 9.0.1 o mayor de Pip. Abrimos una terminal y tecleamos: $ py -- version # 3.13.3 $ pip -- version # 25.2 ¿Por qué Python? Es un lenguaje de programación multipropósito.  Permite el uso de diferentes paradigmas, como el orientado a objetos y hasta el funcional.  Posee miles de librerías que nos permiten trabajar con diversas herramientas, entre ellas gRPC . ¿Por qué gRPC? Es ideal para desarrollos modernos como microservicios que requieren alto rendimiento, baja latencia y comunicación eficiente.  Tiene soporte a lenguajes como Go, Python, Java, C# y C++. Instalemos gRPC con ayuda de Pip : $ pip install grpcio Instalemos también las herramientas de gRPC : $ pip install grpcio-tools Verifiquemos ...

gRPC en Java (y Protobuff)

En este post vamos a ejecutar el ejemplo de cliente-servidor de gRPC para Java del repositorio oficial y crearemos un sencillo ejemplo con Protobuff. En resumen: Clonar el repositorio oficial de gRPC. Ejecutarlo. Crear un proyecto Java con Maven. Modificar el proyecto.  Agregar Gradle en lugar de Maven. Ejecutar el proyecto Protobuf con Gradle. Clonamos el repositorio de ejemplos para Java: $ git clone -b v1. 63.0 --depth 1 https: //github.com/grpc/grpc-java Nos ubicamos en la carpeta de Java: $ cd grpc-java/examples Compilamos el cliente y servidor: $ ./gradlew installDist Abrimos una terminal para ejecutar el servidor: $ ./build/install/examples/bin/hello-world-server Abrimos otra terminal para ejecutar el cliente: $ ./build/install/examples/bin/hello-world-client Si todo funciona podrás ver lo siguiente: INFO: Server started, listening on 50051 En el lado del servidor, y en el lado del cliente: INFO: Will try to greet world ...