相关文档: HTTP框架指南
sflib是一个集合本人在工作学习过程中常用的工具合集,主要包括以下组件:
-
根对象
object提供基于观察者模式的事件循环机制,附加包括eventloop(事件循环)、timer(定时器)、event_waiter(事件等待)。 -
RAII管理类
finally在作用域结束执行某些特定操作。 -
日志类
logger提供线程安全的基础日志输出类,日志分级,多目的地输出。 -
tcp异步网络库
tcp_server、tcp_client提供一个异步网络通信框架,在Windows下的实现为IOCP,linux下的实现为epoll。 -
线程池简单实现
thread_pool提供接口易用的线程池实现。 -
RPC(远程过程调用)框架
rpc_server、rpc_client提供简单的rpc框架,支持同步调用和异步调用。 -
基于网络的消息总线(订阅模式)框架
msg_bus提供一个基于tcp的跨主机消息总线模型。 -
内网NAT网络穿透框架
tcp_nat_traversal_server、tcp_nat_traversal_client(因缺乏测试条件,目前未作详细测试)提供用于内网NAT穿透的通信框架。 -
HTTP服务器框架
http_server,包含基础框架http_base_server提供HTTP/1.1服务器端实现,包括WebSocket服务器实现。 -
词法分析器
lex,语法分析器yacc。提供词法分析与语法分析,作为基础的编译器前端。 -
json库json。提供对json数据的解析,生成,合并等操作,接口友好。 -
对象工厂
object_factory提供工厂模式的简单实现。
- Header-Only
- 接口现代化、人性化
- 跨平台(目前在Windows和Linux测试通过)
sflib是纯头文件库(Header-Only),所以不需要编译即可使用,将包含路径设置到项目路径下即可。(链接时需要依赖的库可参见CMakeLists.txt中测试程序的链接库,主要为ws2_32.lib(Windows),pthread(Linux),libssl(openssl),zlib)
如果想要编译测试程序,需要准备以下工具:
- CMake 3.7 +
- make(或mingw32-make)
- g++ 8.1 +
- openssl 1.1.0h (建议版本)
- zlib 1.2.11 (建议版本)
- doxygen (生成文档时必需)
在
Linux环境下,使用终端进入项目目录,生成编译目录并进入:
mkdir build
cd build执行cmake
cmake ..如果此步骤出错,请检查openssl和zlib是否已经安装并配置完成。
执行make。
make -j如果需要安装sflib至系统包含目录(不建议),执行install操作。
sudo make install如果需要生成API文档,进入到项目目录doc子目录下,调用doxygen生成。
doxygen生成后的API文档位于html文件夹下,使用浏览器打开index.html即可浏览API文档。
sflib第一版草草完成,涉及到错误及异常处理的代码不完善,整体比较脆弱,也没有系统的异常处理体系,后续在使用开发过程中会逐步完善。
后面计划在不断完善打磨sflib的同时,不断往里面加入一些新元素,并会开发一些示例demo引导用户使用。
欢迎各位大佬批评指正!
Github: https://github.com/skyfireitdiy
E-mail:[email protected]
QQ:1513008876