Данный репозиторий содержит демонстрационные примеры, описанные в серии статей на ресурсе Habrhabr.ru: "Асинхронные HTTP-запросы на C++: входящие через RESTinio, исходящие через libcurl", Часть 1, Часть 2, Часть 3.
Компилятор с более-менее нормальной поддержкой C++14. Мы проверяли на gcc-5.4 и 7.3, clang-3.9 и 5.0.
Linux или FreeBSD. Под Windows примеры не проверялись. Возможно, какие-то из них под Windows заработают, но не bridge_server_1_pipe, в котором используется Unix-овый pipe.
Так же потребуется установленная libcurl (т.е. с необходимыми заголовочными файлами и библиотеками). Остальные зависимости примеры подтаскивают и собирают самостоятельно.
В данном репозитории находятся только исходные тексты самих примеров. Исходные тексты зависимостей (т.к. Asio, fmtlib, restinio и пр.) в репозиторий не включены. Есть два способа взять примеры с необходимыми для них зависимостями.
В секции Downloads находятся архивы, в которые включены все исходные тексты: и самих примеров, и их зависимостей.
Поэтому самый простой способ -- это загрузить соответствующий архив из Downloads, распаковать его, зайти в async_restinio_async_libcurl_ru/dev
и перейти к компиляции примеров.
В этом случае вам потребуется Ruby + MxxRu + различный инструментарий, который из коробки есть у Linux/FreeBSD-разработчиков (вроде git, tar, unzip и пр.). В этом случае:
- Устанавливаем Ruby и RubyGems (обычно RubyGems идет сразу с Ruby, но где-то может придется ставить отдельно).
- Устанавливаем MxxRu:
gem install Mxx_ru
- Делаем git clone:
git clone https://github.com/Stiffstream/async_restinio_async_libcurl_ru
- Заходим в нужный подкаталог:
cd async_restinio_async_libcurl_ru
- Запускаем команду
mxxruexternals
. - Ждем пока все зависимости подтянутся.
После этого можно заходить в подкаталог dev
и переходить к компиляции.
Для сборки CMake применяется стандартный набор действий:
cd async_restinio_async_libcurl_ru/dev
mkdir cmake_build
cd cmake_build
cmake -DCMAKE_INSTALL_PREFIX=target -DCMAKE_BUILD_TYPE=release ..
cmake --build . --config Release
cmake --build . --target install
Затем заходим в подкаталог target/bin
и запускаем оттуда получившиеся исполняемые файлы.
Для сборки через MxxRu:
cd async_restinio_async_libcurl_ru/dev
ruby build.rb
Результаты сборки будут в находится в подкаталоге target
и его подкаталогах с именами вида gcc_7_3_0__x86_64_pc_linux_gnu
.