Repolode
ithewei

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

    저장소를 클론합니다

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

    프로젝트 디렉터리로 이동합니다

    cd libhv
  3. 3

    Makefile로 빌드를 구성합니다

    ./configure
  4. 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 통계는 매일 갱신됩니다.

관련 프로젝트

마이크로컨트롤러용 TCP/IP 스택, TLS 1.3, HTTP, WebSocket, MQTT 및 펌웨어 OTA 업데이트를 제공하는 두 파일로 구성된 임베디드 C 네트워킹 라이브러리입니다.

1.3만+4 이번 주3천COther활발히 관리됨업데이트 17시간 전

Netty와 유사한 고성능 프로토콜 서버와 클라이언트를 구축하기 위한 크로스 플랫폼 Swift 비동기 이벤트 기반 네트워킹 프레임워크입니다.

8.5천+5 이번 주823SwiftApache-2.0업데이트 4일 전