Skip to content
/ libhv Public
forked from ithewei/libhv

🔥 比libevent、libuv更易用的网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server.

License

Notifications You must be signed in to change notification settings

Grisson/libhv

Repository files navigation

Intro

hw 是一套跨平台c/c++基础组件,函数名/类名以h/H开头

platform

  • gcc
  • mingw
  • msvc

required

  • c++11

Module

data-structure

  • array.h: 动态数组
  • list.h: 链表
  • queue.h: 队列
  • heap.h: 堆

base

  • hplatform.h: 平台相关宏
  • hdef.h: 宏定义
  • hversion.h: 版本
  • hbase.h: 基本接口
  • hsysinfo.h: 系统信息
  • hproc.h: 子进程/线程类
  • hmath.h: math扩展函数
  • htime.h: 时间
  • herr.h: 错误码
  • hlog.h: 日志
  • hsocket.h: socket操作
  • hstring.h: 字符串
  • hvar.h: var变量
  • hobj.h: 对象基类
  • hgui.h: gui相关定义
  • hbuf.h: 缓存类
  • hfile.h: 文件类
  • hdir.h: ls实现
  • hscope.h: 作用域RAII机制
  • hmutex.h: 同步锁
  • hthread.h: 线程
  • hthreadpool.h:线程池

utils

  • hmain.h: main_ctx: arg env
  • hendian.h: 大小端
  • ifconfig.h: ifconfig实现
  • iniparser.h: ini解析
  • singleton.h: 单例模式

event

  • hloop.h: 事件循环

http

  • http_client.h: http客户端
  • http_server.h: http服务端

other

  • h.h: 总头文件
  • Makefile.in: 通用Makefile模板
  • main.cpp.tmpl: 通用main.cpp模板

BUILD

examples

  • make all
  • make test: 服务端master-workers model
  • make timer: 定时器测试
  • make loop: 事件循环(包含timer、io、idle)
  • make tcp: tcp server
  • make udp: udp server
  • make nc: network client
  • make nmap: host discovery
  • make httpd: http服务(包含web service和api service)
  • make curl: 基于libcurl封装http客户端

tests

  • make webbench: http服务压力测试程序
  • make unittest: 单元测试

compile options

compile with print debug info

  • make DEFINES=PRINT_DEBUG

compile WITH_OPENSSL

  • make DEFINES=WITH_OPENSSL

compile WITH_CURL

  • make DEFINES="WITH_CURL CURL_STATICLIB"

compile WITH_NGHTTP2

  • make DEFINES=WITH_NGHTTP2

About

🔥 比libevent、libuv更易用的网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 57.5%
  • C++ 33.8%
  • CMake 4.9%
  • Shell 1.8%
  • Makefile 1.6%
  • Python 0.2%
  • HTML 0.2%