QtNetworkNg 是一个基于协程的网络编程库。目标为 C++ 开发者提供简洁而不失强大的网络编程 API,成为 C++ 界最好的网络编程库。目前已经具备完善的协程管理功能、基本的 socket 编程和完善的 HTTP 1.1 客户端。
和 boost::asio 相比,QtNetworkNg 的 API 更为简单,使用方法与 Python 的 gevent 和 requests 相当类似,简洁而不失强大。和大多数协程库相比,QtNetworkNg 提供了更为完善的协程管理机制,甚至还包含了协程锁、事件等实现。
目前 QtNetworkNg 已经支持多种平台。如名称所示,QtNetworkNg 依赖于 Qt.
QtNetworkNg 根据平台选择使用 ucontext/window fiber/fcontext。默认使用 fcontext,这是 boost context 所使用的高效汇编代码。