Skip to content

Пример использования RESTinio и libcurl в одном приложении в асинхронном режиме

Notifications You must be signed in to change notification settings

Stiffstream/async_restinio_async_libcurl_ru

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Данный репозиторий содержит демонстрационные примеры, описанные в серии статей на ресурсе 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 и перейти к компиляции примеров.

Использовать MxxRu::externals

В этом случае вам потребуется Ruby + MxxRu + различный инструментарий, который из коробки есть у Linux/FreeBSD-разработчиков (вроде git, tar, unzip и пр.). В этом случае:

  1. Устанавливаем Ruby и RubyGems (обычно RubyGems идет сразу с Ruby, но где-то может придется ставить отдельно).
  2. Устанавливаем MxxRu: gem install Mxx_ru
  3. Делаем git clone: git clone https://github.com/Stiffstream/async_restinio_async_libcurl_ru
  4. Заходим в нужный подкаталог: cd async_restinio_async_libcurl_ru
  5. Запускаем команду mxxruexternals.
  6. Ждем пока все зависимости подтянутся.

После этого можно заходить в подкаталог dev и переходить к компиляции.

Как попробовать?

Компиляция посредством CMake

Для сборки 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

Для сборки через MxxRu:

cd async_restinio_async_libcurl_ru/dev
ruby build.rb

Результаты сборки будут в находится в подкаталоге target и его подкаталогах с именами вида gcc_7_3_0__x86_64_pc_linux_gnu.

About

Пример использования RESTinio и libcurl в одном приложении в асинхронном режиме

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published