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