Repolode
ithewei

ithewei/libhv

Biblioteca de red multiplataforma en C/C++ con bucle de eventos y soporte para clientes y servidores TCP/UDP, SSL, HTTP, WebSocket, MQTT y Redis.

Estrellas
7,572
Forks
1,372
Issues abiertos
63
Último commit
hace 10 días

¿Qué es?

libhv es una biblioteca de redes en C/C++ basada en un bucle de eventos con IO no bloqueante, temporizadores y eventos de inactividad y señales. Compite en el mismo ámbito que libevent, libev y libuv, pero ofrece una API más sencilla e incluye más protocolos de serie: cliente, servidor y proxy TCP/UDP; SSL/TLS mediante OpenSSL, GnuTLS o mbedTLS; y un modo opcional de UDP confiable basado en KCP.

Además de los sockets sin procesar, incluye un cliente y servidor HTTP compatibles con HTTP/1.x, HTTP/2, HTTPS y gRPC, con un router al estilo de Gin que admite rutas RESTful, middleware, keep-alive, respuestas fragmentadas y SSE. El conjunto de protocolos se completa con un cliente/servidor WebSocket, un cliente MQTT y un cliente Redis. La biblioteca se compila en Linux, Windows, macOS, Android, iOS, BSD y Solaris mediante Makefile, CMake, Bazel, vcpkg o xmake.

Incluye interfaces tanto en C como en C++. La capa de C++ ofrece una API TcpServer/TcpClient al estilo de evpp y un cliente HTTP al estilo de requests, basado en el cliente requests de Python, para que los casos de uso sencillos requieran solo unas pocas líneas. El repositorio también contiene programas de ejemplo que reimplementan herramientas conocidas como curl, httpd, wrk, nc, nmap y kcptun.

Funciones clave

  • 01Bucle de eventos compatible con eventos de IO, temporizador, inactividad, personalizados y señales.
  • 02Cliente, servidor y proxy TCP/UDP, con heartbeat, reconexión y operaciones de escritura/cierre seguras para múltiples hilos.
  • 03Modos de desempaquetado integrados: longitud fija, delimitador y campo de longitud.
  • 04Cliente y servidor HTTP con HTTPS, HTTP/2, gRPC, enrutamiento RESTful, middleware, respuestas fragmentadas y SSE.
  • 05Cliente/servidor WebSocket, cliente MQTT y cliente Redis.
  • 06SSL/TLS mediante OpenSSL, GnuTLS o mbedTLS; UDP confiable mediante KCP.

Casos de uso

  • Crear un servicio TCP o UDP personalizado que necesite heartbeats, reconexión y delimitación de paquetes.
  • Desarrollar un servidor de API HTTP o un proxy inverso en C/C++ sin incorporar un framework grande.
  • Añadir conectividad WebSocket o MQTT a una aplicación en C/C++.
  • Portar código de red entre Linux, Windows, macOS, Android e iOS.

Inicio rápido

  1. 1

    Clona el repositorio

    git clone https://github.com/ithewei/libhv.git
  2. 2

    Entra en el directorio del proyecto

    cd libhv
  3. 3

    Configura la compilación con Makefile

    ./configure
  4. 4

    Compila el proyecto

    make

Antes de usarlo

  • La compatibilidad con Redis está deshabilitada de forma predeterminada y debe habilitarse explícitamente durante la compilación.

Temas

Preguntas frecuentes

¿Qué es libhv?
Biblioteca de red multiplataforma en C/C++ con bucle de eventos y soporte para clientes y servidores TCP/UDP, SSL, HTTP, WebSocket, MQTT y Redis. libhv es una biblioteca de redes en C/C++ basada en un bucle de eventos con IO no bloqueante, temporizadores y eventos de inactividad y señales. Compite en el mismo ámbito que libevent, libev y libuv, pero ofrece una API más sencilla e incluye más protocolos de serie: cliente, servidor y proxy TCP/UDP; SSL/TLS mediante OpenSSL, GnuTLS o mbedTLS; y un modo opcional de UDP confiable basado en KCP.
¿libhv es gratuito? ¿Qué licencia tiene?
libhv es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿libhv sigue mantenido?
Mantenimiento activo. El último commit de libhv fue el 28 oct 2026.
¿Para qué puedo usar libhv?
Crear un servicio TCP o UDP personalizado que necesite heartbeats, reconexión y delimitación de paquetes. Desarrollar un servidor de API HTTP o un proxy inverso en C/C++ sin incorporar un framework grande. Añadir conectividad WebSocket o MQTT a una aplicación en C/C++. Portar código de red entre Linux, Windows, macOS, Android e iOS.
¿Cómo se instala libhv?
Clona el repositorio: git clone https://github.com/ithewei/libhv.git Entra en el directorio del proyecto: cd libhv Configura la compilación con Makefile: ./configure Compila el proyecto: make
¿Dónde consigo libhv?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ithewei/libhv

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados

Framework de networking multiplataforma, no bloqueante y orientado a eventos, escrito en Swift para crear servidores y clientes de protocolos de alto rendimiento, similar a Netty.

8,5 mil+5 esta semana823SwiftApache-2.0Actualizado hace 4 días