Repolode
ithewei

ithewei/libhv

Biblioteca de rede C/C++ multiplataforma com event loop e suporte a clientes e servidores TCP/UDP, SSL, HTTP, WebSocket, MQTT e Redis.

Estrelas
7,572
Forks
1,372
Issues abertas
63
Último commit
há 10 dias

O que é?

libhv é uma biblioteca de rede C/C++ baseada em um event loop com IO não bloqueante, timers e eventos de inatividade e sinal. Atua na mesma área que libevent, libev e libuv, mas oferece uma API mais simples e já inclui mais protocolos: cliente, servidor e proxy TCP/UDP; SSL/TLS via OpenSSL, GnuTLS ou mbedTLS; e um modo opcional de UDP confiável baseado em KCP.

Além dos sockets básicos, inclui cliente e servidor HTTP com suporte a HTTP/1.x, HTTP/2, HTTPS e gRPC, além de um roteador no estilo Gin que oferece suporte a rotas RESTful, middleware, keep-alive, respostas em chunks e SSE. Um cliente/servidor WebSocket, um cliente MQTT e um cliente Redis completam o conjunto de protocolos. A biblioteca pode ser compilada no Linux, Windows, macOS, Android, iOS, BSD e Solaris usando Makefile, CMake, Bazel, vcpkg ou xmake.

A biblioteca oferece interfaces em C e C++. A camada C++ inclui uma API TcpServer/TcpClient no estilo evpp e um cliente HTTP no estilo requests, inspirado no requests do Python, para que casos de uso simples exijam apenas algumas linhas. O repositório também contém programas de exemplo que reimplementam ferramentas conhecidas, como curl, httpd, wrk, nc, nmap e kcptun.

Recursos principais

  • 01Event loop com suporte a eventos de IO, timer, inatividade, personalizados e de sinal.
  • 02Cliente, servidor e proxy TCP/UDP, com heartbeat, reconexão e operações de escrita/fechamento seguras para múltiplas threads.
  • 03Modos integrados de desempacotamento: tamanho fixo, delimitador e campo de tamanho.
  • 04Cliente e servidor HTTP com HTTPS, HTTP/2, gRPC, roteamento RESTful, middleware, respostas em chunks e SSE.
  • 05Cliente/servidor WebSocket, cliente MQTT e cliente Redis.
  • 06SSL/TLS via OpenSSL, GnuTLS ou mbedTLS; UDP confiável via KCP.

Casos de uso

  • Criar um serviço TCP ou UDP personalizado que precise de heartbeat, reconexão e enquadramento de pacotes.
  • Desenvolver um servidor de API HTTP ou proxy reverso em C/C++ sem adicionar um framework grande ao projeto.
  • Adicionar conectividade WebSocket ou MQTT a uma aplicação C/C++.
  • Portar código de rede entre Linux, Windows, macOS, Android e iOS.

Início rápido

  1. 1

    Clone o repositório

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

    Entre no diretório do projeto

    cd libhv
  3. 3

    Configure a compilação com Makefile

    ./configure
  4. 4

    Compile o projeto

    make

Antes de usar

  • O suporte a Redis vem desativado por padrão e deve ser ativado explicitamente durante a compilação.

Tópicos

Perguntas frequentes

O que é libhv?
Biblioteca de rede C/C++ multiplataforma com event loop e suporte a clientes e servidores TCP/UDP, SSL, HTTP, WebSocket, MQTT e Redis. libhv é uma biblioteca de rede C/C++ baseada em um event loop com IO não bloqueante, timers e eventos de inatividade e sinal. Atua na mesma área que libevent, libev e libuv, mas oferece uma API mais simples e já inclui mais protocolos: cliente, servidor e proxy TCP/UDP; SSL/TLS via OpenSSL, GnuTLS ou mbedTLS; e um modo opcional de UDP confiável baseado em KCP.
libhv é gratuito? Qual é a licença?
libhv é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
libhv ainda é mantido?
Manutenção ativa. O último commit de libhv foi em 28 de out. de 2026.
Para que posso usar libhv?
Criar um serviço TCP ou UDP personalizado que precise de heartbeat, reconexão e enquadramento de pacotes. Desenvolver um servidor de API HTTP ou proxy reverso em C/C++ sem adicionar um framework grande ao projeto. Adicionar conectividade WebSocket ou MQTT a uma aplicação C/C++. Portar código de rede entre Linux, Windows, macOS, Android e iOS.
Como instalar libhv?
Clone o repositório: git clone https://github.com/ithewei/libhv.git Entre no diretório do projeto: cd libhv Configure a compilação com Makefile: ./configure Compile o projeto: make
Onde consigo libhv?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ithewei/libhv

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados

Framework de rede multiplataforma e não bloqueante, baseado em eventos e escrito em Swift, para criar servidores e clientes de protocolos de alto desempenho, semelhante ao Netty.

8,5 mil+5 esta semana823SwiftApache-2.0Atualizado há 4 dias