Despite some coincidence, Boost.Asio is not the equivalent of the POCO Net library. Higher-level protocols go beyond Boost.Asio. The rationale in the library explicitly states that it is a captured, not a framework that was designed to support the development of other libraries that provide higher levels of abstraction, such as HTTP. In addition, I am not aware of any Boost libraries (released or candidates) that provide support for higher-level protocols. One alternative could be the cpp-netlib library , which is still under development and is designed to support higher-level protocols. However, at the moment it has only an HTTP client and server.
If you are looking for higher level protocol support, then POCO might be a good candidate. However, before making a decision, I would suggest considering other issues:
- Support: On StackOverflow boost-asio to be more active than poco-libraries . Other support options include the Boost Mailing List and POCO for four months .
- Boost.Asio is designed as a toolkit and uses universal programming. Although POCO provides some functionality through non-framework tools, some higher-level functions are only provided through frameworks. Thus, it introduces a closer connection with the application and can affect the design of the application.
- Asynchronous programming between two libraries is slightly different. In POCO, callbacks are associated with an event type that allows you to call back several times for a single subscription. Boost.Asio, on the other hand, associates a callback with one operation, with the result that the callback is called no more than once for a given operation. This difference can have consequences on how the asynchronous circuits are designed and flow.
source share