xia-chu / Zltoolkit
Licence: mit
一个基于C++11的轻量级网络框架,基于线程池技术可以实现大并发网络IO
Stars: ✭ 838
Projects that are alternatives of or similar to Zltoolkit
ZLToolKit
一个基于C++11的轻量级网络框架,基于线程池技术可以实现大并发网络IO
Stars: ✭ 1,302 (+55.37%)
Mutual labels: ssl, timer, logger, epoll
Hp Socket
High Performance TCP/UDP/HTTP Communication Component
Stars: ✭ 4,420 (+427.45%)
Mutual labels: network, epoll, ssl
Zserver4d
ZServer4D 是一套从商业项目剥离而出的云服务器中间件,可以承载百万级的分布式负载服务,并且支持IoT及内网穿透
Stars: ✭ 199 (-76.25%)
Mutual labels: network, epoll
Mqttclient
A high-performance, high-stability, cross-platform MQTT client, developed based on the socket API, can be used on embedded devices (FreeRTOS / LiteOS / RT-Thread / TencentOS tiny), Linux, Windows, Mac, with a very concise The API interface realizes the quality of service of QOS2 with very few resources, and seamlessly connects the mbedtls encryption library.
Stars: ✭ 234 (-72.08%)
Mutual labels: network, ssl
Dotzu
📱👀 In-App iOS Debugging Tool With Enhanced Logging, Networking Info, Crash reporting And More.
Stars: ✭ 1,802 (+115.04%)
Mutual labels: network, logger
Wormholy
iOS network debugging, like a wizard 🧙♂️
Stars: ✭ 2,010 (+139.86%)
Mutual labels: network, logger
Sqldb Logger
A logger for Go SQL database driver without modify existing *sql.DB stdlib usage.
Stars: ✭ 160 (-80.91%)
Mutual labels: sql, logger
Quicklogger
Library for logging on files, console, memory, email, rest, eventlog, syslog, slack, telegram, redis, logstash, elasticsearch, influxdb, graylog, Sentry, Twilio, ide debug messages and throw events for Delphi/Firemonkey/freepascal/.NET (Windows/Linux/OSX/IOS/Android).
Stars: ✭ 137 (-83.65%)
Mutual labels: sql, logger
Swoole Src
🚀 Coroutine-based concurrency library for PHP
Stars: ✭ 17,175 (+1949.52%)
Mutual labels: timer, network
Android Remote Debugger
A library for remote logging, database debugging, shared preferences and network requests
Stars: ✭ 132 (-84.25%)
Mutual labels: network, logger
React Native Tcp Socket
React Native TCP socket API for Android, iOS & macOS with client SSL/TLS support
Stars: ✭ 112 (-86.63%)
Mutual labels: network, ssl
Libhv
🔥 比libevent、libuv更易用的国产网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket client/server.
Stars: ✭ 3,355 (+300.36%)
Mutual labels: network, epoll
Twisted
Event-driven networking engine written in Python.
Stars: ✭ 4,442 (+430.07%)
Mutual labels: network, ssl
Gofamily
🔥 大厂 BAT 面试高频知识点,后端技术体系。包含了 C GO Python, 网络,Redis ,MySQL ,消息队列 ,高并发,微服务,缓存,操作系统,算法,LeetCode 刷题等知识
Stars: ✭ 474 (-43.44%)
Mutual labels: sql, network
Logbook
An extensible Java library for HTTP request and response logging
Stars: ✭ 822 (-1.91%)
Mutual labels: logger
Beetlex
high performance dotnet core socket tcp communication components, support TLS, HTTP, HTTPS, WebSocket, RPC, Redis protocols, custom protocols and 1M connections problem solution
Stars: ✭ 802 (-4.3%)
Mutual labels: ssl
一个基于C++11简单易用的轻量级网络编程框架
项目特点
- 基于C++11开发,避免使用裸指针,代码稳定可靠;同时跨平台移植简单方便,代码清晰简洁。
- 使用epoll+线程池+异步网络IO模式开发,并发性能优越。
- 代码经过大量的稳定性、性能测试,可满足商用服务器项目。
- 支持linux、macos、ios、android、windows平台
- 了解更多:ZLMediaKit
特性
- 网络库
- tcp/udp客户端,接口简单易用并且是线程安全的,用户不必关心具体的socket api操作。
- tcp服务器,使用非常简单,只要实现具体的tcp会话(TcpSession类)逻辑,使用模板的方式可以快速的构建高性能的服务器。
- 对套接字多种操作的封装。
- 线程库
- 使用线程实现的简单易用的定时器。
- 信号量。
- 线程组。
- 简单易用的线程池,可以异步或同步执行任务,支持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头再编译。
联系方式
- 邮箱:[email protected](本项目相关或网络编程相关问题请走issue流程,否则恕不邮件答复)
- QQ群:542509000
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].