开源项目推荐:C/C++网络库(muduo/poco/libuv/workflow等等)

简介: 开源项目推荐:C/C++网络库(muduo/poco/libuv/workflow等等)

(1)ACE


庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。


http://www.cs.wustl.edu/~schmidt/ACE.html



(2)Asio


Asio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。


开源、免费,支持跨平台。


http://think-async.com/



(3)POCO


POCO C++ Libraries 提供一套 C++ 的类库用以开发基于网络的可移植的应用程序,功能涉及线程、线程同步、文件系统访问、流操作、共享库和类加载、套接字以及网络协议包括:HTTP、 FTP、SMTP 等;其本身还包含一个 HTTP 服务器,提供 XML 的解析和 SQL 数据库的访问接口。POCO库的模块化、高效的设计及实现使得POCO特别适合嵌入式开发。在嵌入式开发领域,由于C++既适合底层(设备I/O、中断处理等)和高层面向对象开发,越来越流行。


http://pocoproject.org/



(4)libevent


Libevent是一个轻量级的开源高性能网络库,从它的官网标题:libevent-an event notification library就能知道它的机制是采用事件触发,封装了以下三种事件的响应:IO事件,定时器事件,信号事件。select模型来实现跨平台的操作,Windows环境下支持IOCP。Google的开源WEB浏览器Chromium在Mac和Linux版本中,也使用了Libevent,足见该库的质量。


http://libevent.org/



(5)libev


libev和libevent很像,按照作者的介绍,可以作为libevent的替代者,能够提供更高的性能。


libev是一个高性能事件循环,所实现的功能就是一个强大的reactor。


http://software.schmorp.de/pkg/libev.html



(6)c++ sockets library


封装了sockets C API的C++类库。


支持SSL, IPv6, tcp 和 udp sockets, sctp sockets, http协议, 高度可定制的错误处理。


http://www.alhem.net/Sockets/



(7)libcurl


libcurl是免费的轻量级的客户端网络库,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet, TFTP. 支持SSL, HTTP POST, HTTP PUT, FTP上传, HTTP form上传,代理,cookies, 用户名与密码认证。


如果你开发的是客户端,libcurl是一个不错的选择。


http://curl.haxx.se/libcurl/



libuv


http://libuv.org/



ACL


https://github.com/acl-dev/acl



HP-Socket


https://github.com/ldcsaa/HP-Socket



Sogou C++ Workflow


https://github.com/sogou/workflow


https://github.com/sogou/srpc


https://www.zhihu.com/people/liyingxin1412/



muduo


https://github.com/chenshuo/muduo



ananas


https://github.com/loveyacper/ananas


相关文章
|
1月前
|
NoSQL 网络协议 Linux
Redis的实现一:c、c++的网络通信编程技术,先实现server和client的通信
本文介绍了使用C/C++进行网络通信编程的基础知识,包括创建socket、设置套接字选项、绑定地址、监听连接以及循环接受和处理客户端请求的基本步骤。
47 6
|
1月前
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
61 6
|
1月前
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
95 10
|
1月前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
69 5
|
1月前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
52 1
|
2月前
|
编译器 API C语言
超级好用的C++实用库之跨平台实用方法
超级好用的C++实用库之跨平台实用方法
39 6
|
2月前
|
安全 C++
超级好用的C++实用库之环形内存池
超级好用的C++实用库之环形内存池
47 5
|
2月前
|
缓存 网络协议 Linux
超级好用的C++实用库之套接字
超级好用的C++实用库之套接字
34 1
|
2月前
|
存储 算法 安全
超级好用的C++实用库之sha256算法
超级好用的C++实用库之sha256算法
96 1
|
1月前
|
存储 监控 NoSQL
Redis的实现二: c、c++的网络通信编程技术,让服务器处理多个client
本文讨论了在C/C++中实现服务器处理多个客户端的技术,重点介绍了事件循环和非阻塞IO的概念,以及如何在Linux上使用epoll来高效地监控和管理多个文件描述符。
27 0