Extensão PHP que oferece um mecanismo de rede orientado a eventos e um runtime de corrotinas para criar serviços TCP, UDP, HTTP e WebSocket de longa duração.
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
Clone o repositório
git clone https://github.com/ithewei/libhv.git - 2
Entre no diretório do projeto
cd libhv - 3
Configure a compilação com Makefile
./configure - 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
Cliente HTTP para Python baseado no curl que pode imitar fingerprints de TLS, JA3 e HTTP/2 de navegadores para contornar bloqueios.
Biblioteca de rede embarcada em C, distribuída em dois arquivos, com pilha TCP/IP, TLS 1.3, HTTP, WebSocket, MQTT e atualizações OTA de firmware para microcontroladores.
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.
Bibliotecas de classes C++ multiplataforma para criar aplicações centradas em rede, com suporte a HTTP, networking, bancos de dados, XML/JSON e logging.
Biblioteca de comunicação de rede e framework de servidores multiplataforma em C/C++, com corrotinas, HTTP, Redis, MQTT e clientes de banco de dados.