
OK, I understood the documentation, that booster is very similar to boost, but with the ABI as stable as possible. Seems like I misunderstood it there.
Booster is a boost-like API for functionality required in public interface: - callbacks: booster::function and booster::callback (same as function but reference counted) - regular expressions - event loop - mutexes - some smart pointers (shared/intrusive - copied from boost) And some more. It is not boost and it does not replace it. The biggest shared part is obviously Boost.Locale :-)
"copy-paste" replaceable especially parts like Booster.AIO that shared general ideas with ASIO but solves some very critical problems that exist in ASIO from my point of view.
Of course I'd like to learn about these problems. Eventually there ist also a way to improve boost accordingly.
Several problems. ASIO uses templates were I don't think they should be, there is no reason for stream_socket for TCP and Unix domain socket to be different class... For example if I implement FastCGI over Unix socket and TCP socket, under ASIO it must be 2 different classes as under ASIO it is two different classes. It is matter of design. But when CppCMS has 5-6 such classes it becomes painful. Another thing. ASIO uses IOCP, IOCP does not provide: - Reactor like functionality - Does not allow detach socket from IOCP Thus some functionality is just missing under ASIO because it is impossible to both use IOCP for best beformance and have reactor like functionality. This is the design. I have different needs. Just don't get wrong ASIO is absolutely great library and I use it on daily basis, but it does not fit CppCMS's project needs.
Finally you don't use almost any of them most of the with some very special exceptions... And nothing prevents from you to use Boost whatever version and type you like.
Sure. I just think, that using two different libraries that serve almost the same purpose in one application is a little bit suboptimal. So maybe my judgement was based on the - as I have learned now - wrong assumption that booster is mostly a copy of some boost libraries.
Christof
Some stuff is copied, (mostly smart pointers) some stuff provide simplified interface and some stuff is very different. Artyom