Starting a working project under Linux, I was stuck looking for a C ++ library that 1) was free, 2) knew how to work with sockets, and you could quickly raise your server, 3) needed a wrapper over the threads for pluses. At first I came across Qt, but after a while Qt became too heavy for the goal. As a result, the search pushed to cxxtools .
Briefly
Briefly about what the library can do:
can work with TCP sockets and raise a listening server based on them;
can parse http requests and give answers;
can work with SSL;
a fast signal mechanism is implemented (just like Qt);
there is a similar to the boost-ovsky, but more convenient pattern Function / Method; required for callback functionality
able to work with threads (attached): attached and detached threads;
convenient pool template (pool);
Smart pointer is much more convenient (well, of course) than the same std :: smart_ptr and auto_ptr. Allows you to use different class management and reference counting policies, which is convenient and necessary for multi-threaded implementations.
convenient logging mechanism
ini-parser
On the basis of this library, there is also a Tntnet web server demo, in which, it seemed to me, the architecture based on the cxxtools library is rather well built. There's also an example of Event Threading architecture (event model over threads).
In the same place on tntnet there is an interface for working with the database (like Ado or something), but I have not yet used it and cannot say anything yet, except at first glance everything is quite simple and convenient. ')