Pull to refresh

Шаблонная библиотека cxxtools

Reading time1 min
Views1.7K
Начиная рабочий проект под Linux, я застрял в поисках С++ библиотеки, которая бы 1) была free, 2) умела работать с сокетами и можно быстро было поднять свой сервер, 3) нужна была оббёртка над потоками для плюсов. Сперва я наткнулся на Qt, но через некоторое время Qt стал слишком тяжелым для поставленной цели. В итоге поиски подтолкнули к cxxtools.

Кратко
Кратко о том, что умеет делать библиотечка:
  • умеет работать с 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 что ли), но я его ещё не юзал и ничего сказать пока не могу, кроме как на первый взгляд всё достаточно просто и удобно.

Примеры
  • http сервер и клиент
  • потоки
  • пул


  • Я ещё не до конца разобрался в её работе, так что, на что смогу ответить, на то смогу. Но либа стоит того.
Tags:
Hubs:
Total votes 49: ↑45 and ↓4+41
Comments33

Articles