https://github.com/stiffstream/async_restinio_async_libcurl_ru
Пример использования RESTinio и libcurl в одном приложении в асинхронном режиме
https://github.com/stiffstream/async_restinio_async_libcurl_ru
Last synced: 8 months ago
JSON representation
Пример использования RESTinio и libcurl в одном приложении в асинхронном режиме
- Host: GitHub
- URL: https://github.com/stiffstream/async_restinio_async_libcurl_ru
- Owner: Stiffstream
- Created: 2020-11-09T15:24:23.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-11-09T15:58:15.000Z (over 5 years ago)
- Last Synced: 2024-12-28T11:28:23.747Z (over 1 year ago)
- Language: C++
- Size: 22.5 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Данный репозиторий содержит демонстрационные примеры, описанные в серии статей на ресурсе Habrhabr.ru:
"Асинхронные HTTP-запросы на C++: входящие через RESTinio, исходящие через libcurl",
[Часть 1](https://habrahabr.ru/post/349728/),
[Часть 2](https://habrahabr.ru/post/349818/),
[Часть 3](https://habrahabr.ru/post/349986/).
# Как взять и попробовать?
## Что потребуется?
Компилятор с более-менее нормальной поддержкой 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`.