장시간 실행되는 TCP, UDP, HTTP, WebSocket 서비스를 구축할 수 있도록 이벤트 기반 네트워킹 엔진과 코루틴 런타임을 제공하는 PHP 확장입니다.
ithewei/libhv
이벤트 루프와 TCP/UDP, SSL, HTTP, WebSocket, MQTT, Redis 클라이언트/서버 지원을 갖춘 크로스 플랫폼 C/C++ 네트워크 라이브러리입니다.
- 스타
- 7,572
- 포크
- 1,372
- 열린 이슈
- 63
- 마지막 커밋
- 10일 전
어떤 프로젝트인가요?
libhv는 논블로킹 IO, 타이머, idle 및 시그널 이벤트를 중심으로 구성된 이벤트 루프 기반의 C/C++ 네트워크 라이브러리입니다. libevent, libev, libuv와 같은 분야에 속하지만 더 단순한 API를 제공하고, 기본으로 더 많은 프로토콜을 지원합니다. TCP/UDP 클라이언트, 서버, 프록시를 지원하며, OpenSSL, GnuTLS 또는 mbedTLS를 통한 SSL/TLS와 선택적으로 사용할 수 있는 KCP 기반 신뢰성 UDP 모드를 제공합니다.
원시 소켓 외에도 HTTP/1.x, HTTP/2, HTTPS, gRPC를 처리하는 HTTP 클라이언트와 서버가 포함되어 있습니다. Gin 스타일 라우터는 RESTful 경로, 미들웨어, keep-alive, chunked 응답, SSE를 지원합니다. WebSocket 클라이언트/서버, MQTT 클라이언트, Redis 클라이언트가 프로토콜 목록을 완성하며, 라이브러리는 Makefile, CMake, Bazel, vcpkg 또는 xmake를 사용해 Linux, Windows, macOS, Android, iOS, BSD, Solaris에서 빌드할 수 있습니다.
C와 C++ 인터페이스를 모두 제공합니다. C++ 계층에는 evpp 스타일의 TcpServer/TcpClient API와 Python requests를 본뜬 requests 스타일 HTTP 클라이언트가 포함되어 있어, 간단한 용도는 몇 줄의 코드로 처리할 수 있습니다. 저장소에는 curl, httpd, wrk, nc, nmap, kcptun 같은 익숙한 도구를 재구현한 예제 프로그램도 들어 있습니다.
핵심 기능
- 01IO, 타이머, idle, 사용자 정의 및 시그널 이벤트를 지원하는 이벤트 루프.
- 02하트비트, 재연결, 멀티스레드 안전 쓰기/닫기를 지원하는 TCP/UDP 클라이언트, 서버, 프록시.
- 03고정 길이, 구분자, 길이 필드의 내장 언패킹 모드.
- 04HTTPS, HTTP/2, gRPC, RESTful 라우팅, 미들웨어, chunked, SSE를 지원하는 HTTP 클라이언트와 서버.
- 05WebSocket 클라이언트/서버, MQTT 클라이언트, Redis 클라이언트.
- 06OpenSSL, GnuTLS 또는 mbedTLS를 통한 SSL/TLS, KCP를 통한 신뢰성 UDP.
활용 사례
- 하트비트, 재연결, 패킷 프레이밍이 필요한 사용자 정의 TCP 또는 UDP 서비스 구축.
- 대형 프레임워크 없이 C/C++로 HTTP API 서버나 리버스 프록시 작성.
- C/C++ 애플리케이션에 WebSocket 또는 MQTT 연결 추가.
- Linux, Windows, macOS, Android, iOS 간 네트워크 코드 이식.
빠른 시작
- 1
저장소를 클론합니다
git clone https://github.com/ithewei/libhv.git - 2
프로젝트 디렉터리로 이동합니다
cd libhv - 3
Makefile로 빌드를 구성합니다
./configure - 4
프로젝트를 컴파일합니다
make
사용 전 알아둘 점
- Redis 지원은 기본적으로 비활성화되어 있으며 빌드 시 명시적으로 활성화해야 합니다.
토픽
자주 묻는 질문
- libhv은(는) 무엇인가요?
- 이벤트 루프와 TCP/UDP, SSL, HTTP, WebSocket, MQTT, Redis 클라이언트/서버 지원을 갖춘 크로스 플랫폼 C/C++ 네트워크 라이브러리입니다. libhv는 논블로킹 IO, 타이머, idle 및 시그널 이벤트를 중심으로 구성된 이벤트 루프 기반의 C/C++ 네트워크 라이브러리입니다. libevent, libev, libuv와 같은 분야에 속하지만 더 단순한 API를 제공하고, 기본으로 더 많은 프로토콜을 지원합니다. TCP/UDP 클라이언트, 서버, 프록시를 지원하며, OpenSSL, GnuTLS 또는 mbedTLS를 통한 SSL/TLS와 선택적으로 사용할 수 있는 KCP 기반 신뢰성 UDP 모드를 제공합니다.
- libhv은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- libhv은(는) BSD-3-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- libhv은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. libhv의 마지막 커밋은 2026년 10월 28일입니다.
- libhv은(는) 어디에 사용할 수 있나요?
- 하트비트, 재연결, 패킷 프레이밍이 필요한 사용자 정의 TCP 또는 UDP 서비스 구축. 대형 프레임워크 없이 C/C++로 HTTP API 서버나 리버스 프록시 작성. C/C++ 애플리케이션에 WebSocket 또는 MQTT 연결 추가. Linux, Windows, macOS, Android, iOS 간 네트워크 코드 이식.
- libhv는 어떻게 설치하나요?
- 저장소를 클론합니다: git clone https://github.com/ithewei/libhv.git 프로젝트 디렉터리로 이동합니다: cd libhv Makefile로 빌드를 구성합니다: ./configure 프로젝트를 컴파일합니다: make
- libhv은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/ithewei/libhv
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
브라우저의 TLS, JA3, HTTP/2 지문을 흉내 내 차단을 우회할 수 있는 curl 기반 Python HTTP 클라이언트입니다.
마이크로컨트롤러용 TCP/IP 스택, TLS 1.3, HTTP, WebSocket, MQTT 및 펌웨어 OTA 업데이트를 제공하는 두 파일로 구성된 임베디드 C 네트워킹 라이브러리입니다.
Netty와 유사한 고성능 프로토콜 서버와 클라이언트를 구축하기 위한 크로스 플랫폼 Swift 비동기 이벤트 기반 네트워킹 프레임워크입니다.
HTTP, 네트워킹, 데이터베이스, XML/JSON, 로깅을 아우르는 크로스플랫폼 C++ 클래스 라이브러리로, 네트워크 중심 애플리케이션 개발에 적합합니다.
코루틴, HTTP, Redis, MQTT 및 데이터베이스 클라이언트를 지원하는 C/C++ 크로스 플랫폼 네트워크 통신 라이브러리 겸 서버 프레임워크입니다.