Начиная рабочий проект под Linux, я застрял в поисках С++ библиотеки, которая бы 1) была free, 2) умела работать с сокетами и можно быстро было поднять свой сервер, 3) нужна была оббёртка над потоками для плюсов. Сперва я наткнулся на Qt, но через некоторое время Qt стал слишком тяжелым для поставленной цели. В итоге поиски подтолкнули к cxxtools.
На основе этой библиотеки так же есть демка Tntnet веб сервера, в котором, как мне показалось, довольно удачно построена архитектура на основе cxxtools библиотеки. Там же пример архитектуры Event Threading (событийная модель поверх потоков).
Там же на tntnet имеется интерфейс для работы с бд (типа Ado что ли), но я его ещё не юзал и ничего сказать пока не могу, кроме как на первый взгляд всё достаточно просто и удобно.
Кратко
Кратко о том, что умеет делать библиотечка:- умеет работать с TCP сокетами и поднимать на их основе слушающий сервер;
- умеет парсить http запросы и отдавать ответы;
- умеет работать с SSL;
- реализован быстрый механизм сигналов (как раз похожий на Qt);
- имеется похожий на boost-овский, но более удобный шаблон Function / Method; необходим для callback-функционала
- умеет работать с потоками (threads): attached и detached threads;
- удобный шаблон пула (pool);
- гораздо удобнее smart pointer (ну имхо конечно), чем тот же std::smart_ptr и auto_ptr. Позволяет использовать разные политики управления классом и подсчёта ссылок, что удобно и необходимо для многопотоковых реализаций
- удобный механизм логирования
- ini-парсер
На основе этой библиотеки так же есть демка Tntnet веб сервера, в котором, как мне показалось, довольно удачно построена архитектура на основе cxxtools библиотеки. Там же пример архитектуры Event Threading (событийная модель поверх потоков).
Там же на tntnet имеется интерфейс для работы с бд (типа Ado что ли), но я его ещё не юзал и ничего сказать пока не могу, кроме как на первый взгляд всё достаточно просто и удобно.