ZLToolKit
C++
C++, C, Shell, C
共121个文件
cpp: 52
h: 45
yml: 5
cmake: 5
sh: 4
txt: 2
md: 2
gitignore: 1
AUTHORS: 1
LICENSE: 1
一个基于C++11的轻量级网络框架,基于线程池技术可以实现大并发网络IO
一个基于C++11简单易用的轻量级网络编程框架
项目特点
基于C++11开发,避免使用裸指针,代码稳定可靠;同时跨平台移植简单方便,代码清晰简洁。
使用epoll+线程池+异步网络IO模式开发,并发性能优越。
代码经过大量的稳定性、性能测试,可满足商用服务器项目。
支持linux、macos、ios、android、windows平台
了解更多:ZLMediaKit
特性
网络库
tcp/udp客户端,接口简单易用并且是线程安全的,用户不必关心具体的socket api操作。
tcp/udp服务器,使用非常简单,只要实现具体的tcp/udp会话(Session类)逻辑,使用模板的方式可以快速的构建高性能的服务器。
对套接字多种操作的封装。
线程库
使用线程实现的简单易用的定时器。
信号量。
线程组。
简单易用的线程池,可以异步或同步执行任务,支持functional 和 lambad表达式。
工具库
文件操作。
std::cout风格的日志库,支持颜色高亮、代码定位、异步打印。
INI配置文件的读写。
监听者模式的消息广播器。
基于智能指针的循环池,不需要显式手动释放。
环形缓冲,支持主动读取和读取事件两种模式。
mysql链接池,使用占位符(?)方式生成sql语句,支持同步异步操作。
简单易用的ssl加解密黑盒,支持多线程。
其他一些有用的工具。
命令行解析工具,可以很便捷的实现可配置应用程序
编译(Linux)
我的编译环境
Ubuntu16.04 64 bit + gcc5.4(最低gcc4.7)
cmake 3.5.1
编译
cd ZLToolKit
./build_for_linux.sh
编译(macOS)
我的编译环境
macOS Sierra(10.12.1) + xcode8.3.1
Homebrew 1.1.3
cmake 3.8.0
编译
cd ZLToolKit
./build_for_mac.sh
编译(iOS)
编译环境:请参考macOS的编译指导。
编译
cd ZLToolKit
./build_for_ios.sh
你也可以生成Xcode工程再编译:
cd ZLToolKit
mkdir -p build
cd build
# 生成Xcode工程,工程文件在build目录下
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.cmake -DIOS_PLATFORM=SIMULATOR64 -G "Xcode"
编译(Android)
我的编译环境
macOS Sierra(10.12.1) + xcode8.3.1
Homebrew 1.1.3
cmake 3.8.0
android-ndk-r14b
编译
cd ZLToolKit
export ANDROID_NDK_ROOT=/path/to/ndk
./build_for_android.sh
编译(Windows)
我的编译环境
windows 10
visual studio 2017
openssl
mysqlclient
cmake-gui
编译
1 使用cmake-gui打开工程并生成vs工程文件.
2 找到工程文件(ZLToolKit.sln),双击用vs2017打开.
3 选择编译Release 版本.
4 依次编译 ZLToolKit_static、ZLToolKit_shared、ALL_BUILD、INSTALL.
5 找到目标文件并运行测试用例.
6 找到安装的头文件及库文件(在源码所在分区根目录).
授权协议
本项目自有代码使用宽松的MIT协议,在保留版权信息的情况下可以自由应用于各自商用、非商业的项目。
但是本项目也零碎的使用了一些其他的开源代码,在商用的情况下请自行替代或剔除;
由于使用本项目而产生的商业纠纷或侵权行为一概与本项项目及开发者无关,请自行承担法律风险。
QA
该库性能怎么样?
基于ZLToolKit,我实现了一个流媒体服务器ZLMediaKit;作者已经对其进行了性能测试,可以查看benchmark.md了解详情。
该库稳定性怎么样?
该库经过作者严格的valgrind测试,长时间大负荷的测试;作者也使用该库进行了多个线上项目的开发。实践证明该库稳定性很好;可以无看门狗脚本的方式连续运行几个月。
在windows下编译很多错误?
由于本项目主体代码在macOS/linux下开发,部分源码采用的是无bom头的UTF-8编码;由于windows对于utf-8支持不甚友好,所以如果发现编译错误请先尝试添加bom头再编译。
联系方式
邮箱:1213642868@qq.com(本项目相关或网络编程相关问题请走issue流程,否则恕不邮件答复)
QQ群:542509000
https://gitee.com/xia-chu/ZLToolKit
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目概述:ZLToolKit是基于C++11的一个高性能网络框架。该框架采用轻量级设计,通过线程池技术优化,实现了高并发网络I/O处理能力。项目主要采用C++语言编写,同时融合了C、Shell等脚本语言以支持多样化的构建和配置需求。 文件结构明细:整个框架包含121个文件,其中: - C++源文件(.cpp):52个,构成了框架的主体功能实现; - C++头文件(.h):45个,提供了接口声明和宏定义; - 配置文件(.yml):5个,用于框架配置管理; - CMake构建文件:5个,负责项目构建和依赖管理; - Shell脚本(.sh):4个,辅助项目部署和运行; - 说明文件(.txt):2个,包含项目相关说明; - Markdown文档(.md):2个,用于记录项目指南和说明; - Git忽略文件(.gitignore):1个,定义了版本控制忽略的文件; - 作者信息(AUTHORS):1个,列出了贡献者名单; - 许可证(LICENSE):1个,规定了项目的使用和分发许可。 该框架旨在为开发者提供一个高效、可扩展的网络通信解决方案,适用于构建具备高性能网络处理能力的应用程序。
资源推荐
资源详情
资源评论
收起资源包目录
基于C++11的ZLToolKit高性能网络框架源码 (120个子文件)
AUTHORS 233B
getopt.c 22KB
android.toolchain.cmake 80KB
iOS.cmake 9KB
FindMYSQL.cmake 4KB
AndroidNdkGdb.cmake 4KB
AndroidNdkModules.cmake 3KB
sockutil.cpp 35KB
Socket.cpp 32KB
util.cpp 19KB
logger.cpp 18KB
EventPoller.cpp 15KB
SSLBox.cpp 14KB
UdpServer.cpp 14KB
BufferSock.cpp 12KB
SSLUtil.cpp 11KB
MD5.cpp 11KB
File.cpp 10KB
strptime_win.cpp 10KB
uv_errno.cpp 9KB
TcpServer.cpp 9KB
SHA1.cpp 9KB
test_shell.cpp 7KB
local_time.cpp 6KB
TaskExecutor.cpp 6KB
base64.cpp 6KB
test_pingpong.cpp 5KB
test_resourcePool.cpp 4KB
TcpClient.cpp 4KB
test_sql.cpp 4KB
CMD.cpp 4KB
test_creator.cpp 3KB
test_logger.cpp 3KB
test_noticeCenter.cpp 3KB
Server.cpp 2KB
PipeWrap.cpp 2KB
test_delayTask.cpp 2KB
test_tcpClient.cpp 2KB
test_ssl.cpp 2KB
test_ringBuffer.cpp 2KB
test_semaphore.cpp 2KB
test_tcpEchoServer.cpp 2KB
test_udpSock.cpp 2KB
test_pipe.cpp 2KB
test_threadPool.cpp 2KB
test_eventPoller.cpp 2KB
Pipe.cpp 2KB
mini.cpp 2KB
test_ini.cpp 2KB
test_threadPoolBenchmark.cpp 2KB
test_timer.cpp 1KB
Timer.cpp 1KB
WorkThreadPool.cpp 1KB
SelectWrap.cpp 1KB
Session.cpp 1KB
test_variant.cpp 965B
Buffer.cpp 872B
SqlPool.cpp 628B
NoticeCenter.cpp 516B
.gitignore 291B
Socket.h 21KB
uv_errno.h 16KB
RingBuffer.h 14KB
logger.h 13KB
CMD.h 12KB
util.h 12KB
Buffer.h 11KB
sockutil.h 10KB
EventPoller.h 8KB
SqlConnection.h 8KB
SqlPool.h 8KB
tailor.h 7KB
NoticeCenter.h 6KB
TaskExecutor.h 6KB
SSLBox.h 6KB
mini.h 6KB
ResourcePool.h 6KB
TcpClient.h 5KB
File.h 5KB
SSLUtil.h 4KB
ThreadPool.h 4KB
getopt.h 4KB
List.h 4KB
UdpServer.h 4KB
TimeTicker.h 4KB
TcpServer.h 4KB
MD5.h 3KB
Session.h 3KB
Server.h 2KB
threadgroup.h 2KB
base64.h 2KB
BufferSock.h 2KB
TaskQueue.h 2KB
semaphore.h 2KB
WorkThreadPool.h 2KB
function_traits.h 1KB
SpeedStatistic.h 1KB
onceToken.h 1KB
Timer.h 1KB
SHA1.h 983B
共 120 条
- 1
- 2
资源评论
沐知全栈开发
- 粉丝: 4739
- 资源: 3374
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JSP-JTBC-CMS(SQLITE).rar
- MC3362和MC145151调频无线接收器的设计.pdf
- MiniRenamer-v100.0一款简单易用的批量文件重命名工具(已注册PRO版本).rar
- 小狐狸Ai系统 小狐狸ai付费创作系统V2.8.0 ChatGPT智能机器人
- 公孙离-内衣-肚兜.zipgsl
- 快慢指针判断链表是否有环-go 语言实现
- 学生成绩管理系统的设计与实现-收藏备用.pdf
- JSP+SQL网站流量统计管理系统(源代码+论文).rar
- IBM-PC-XT微机过程...道中模拟量数据的采集和处理.pdf
- JSP+SQL网上选课系统(源代码+论文+答辩PPT).rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功