Asio是否仍然与Boost分开开发,或Boost.Asio是唯一仍在更新的版本?
在Asio website他们谈到两个版本都有好处,而且Asio比Boost更新的频率更高。然而,该网站上最新的开发版本是2011年3月发布的1.5.3,而2013年2月发布的最新Boost 1.53包括Asio 1.8.3,自1.5.3以来发生了大量更改。
Asio网站在没有通知的情况下被放弃了,只支持Boost-only更新,或者它已移至我未找到的某个位置。有谁知道发生了什么事?
我问的原因是我试图从我的项目中删除Boost,而Boost.Asio是我目前使用的唯一Boost库。 Asio本身就是一个只有头文件的库,但是Boost.Asio还引入了其他几个未使用的Boost库(System,Regex,Date_Time)。
我愿意切换到另一个轻量级套接字库,但还没有找到一个与Asio一样好的(就低依赖性和使用本机平台的iocp / epoll方法而言)。
答案 0 :(得分:6)
Asio是单独开发的,然后增强并合并到Boost.Asio中。但是,您可能无法根据正在使用的功能和编译器从项目中删除Boost。从Asio 1.10.0开始,Asio尝试使用等效的C ++ 11标准库而不是Boost。
Asio基本上是Boost.Asio:
在1.10.0之前的Asio版本中可能存在Boost依赖关系。这些依赖关系通常在模板中引入;因此,依赖性可能仅在应用程序使用特定功能时发生。很容易忽略Asio and Boost.Asio页面上的细微细节,其中指出:
Asio仅限于头文件,大多数用途不需要链接任何Boost库。当使用C ++ 11和最新版本的gcc,clang或MSVC时,通过在编译时定义
ASIO_STANDALONE
,可以独立于Boost使用Asio。
通常,以下功能会引入依赖关系:
std::chrono
的C ++ 11版本。read_until()
操作取决于Boost.Regex。值得考虑使用:
答案 1 :(得分:4)
我通过电子邮件询问了非升级版本的维护情况,作者Christopher Kohlhoff说他在github上保留了它
https://github.com/chriskohlhoff/asio
今天看着它似乎并不像1.8.3那样,或者至少它没有被标记,所以可能是他停止维护那个回购。