{"id":18720487,"url":"https://github.com/stiffstream/async_restinio_async_libcurl_ru","last_synced_at":"2025-11-10T21:30:16.017Z","repository":{"id":109496669,"uuid":"311380672","full_name":"Stiffstream/async_restinio_async_libcurl_ru","owner":"Stiffstream","description":"Пример использования RESTinio и libcurl в одном приложении в асинхронном режиме","archived":false,"fork":false,"pushed_at":"2020-11-09T15:58:15.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-28T11:28:23.747Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Stiffstream.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-09T15:24:23.000Z","updated_at":"2020-11-09T15:58:17.000Z","dependencies_parsed_at":"2023-03-21T07:32:35.538Z","dependency_job_id":null,"html_url":"https://github.com/Stiffstream/async_restinio_async_libcurl_ru","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stiffstream%2Fasync_restinio_async_libcurl_ru","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stiffstream%2Fasync_restinio_async_libcurl_ru/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stiffstream%2Fasync_restinio_async_libcurl_ru/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stiffstream%2Fasync_restinio_async_libcurl_ru/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Stiffstream","download_url":"https://codeload.github.com/Stiffstream/async_restinio_async_libcurl_ru/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239583688,"owners_count":19663247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T13:31:17.285Z","updated_at":"2025-11-10T21:30:15.962Z","avatar_url":"https://github.com/Stiffstream.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Данный репозиторий содержит демонстрационные примеры, описанные в серии статей на ресурсе Habrhabr.ru:\n\"Асинхронные HTTP-запросы на C++: входящие через RESTinio, исходящие через libcurl\",\n[Часть 1](https://habrahabr.ru/post/349728/),\n[Часть 2](https://habrahabr.ru/post/349818/),\n[Часть 3](https://habrahabr.ru/post/349986/).\n\n# Как взять и попробовать?\n\n## Что потребуется?\n\nКомпилятор с более-менее нормальной поддержкой C++14. Мы проверяли на gcc-5.4 и 7.3, clang-3.9 и 5.0.\n\nLinux или FreeBSD. Под Windows примеры не проверялись. Возможно, какие-то из них под Windows заработают, но не bridge_server_1_pipe, в котором используется Unix-овый pipe.\n\nТак же потребуется установленная libcurl (т.е. с необходимыми заголовочными файлами и библиотеками). Остальные зависимости примеры подтаскивают и собирают самостоятельно.\n\n## Как взять?\n\nВ данном репозитории находятся только исходные тексты самих примеров. Исходные тексты зависимостей (т.к. Asio, fmtlib, restinio и пр.)\nв репозиторий не включены. Есть два способа взять примеры с необходимыми для них зависимостями.\n\n### Загрузить полный архив\n\nВ секции Downloads находятся архивы, в которые включены все исходные тексты: и самих примеров, и их зависимостей.\nПоэтому самый простой способ -- это загрузить соответствующий архив из Downloads, распаковать его, зайти в `async_restinio_async_libcurl_ru/dev`\nи перейти к компиляции примеров.\n\n### Использовать MxxRu::externals\n\nВ этом случае вам потребуется Ruby + MxxRu + различный инструментарий, который из коробки есть у Linux/FreeBSD-разработчиков (вроде git, tar, unzip и пр.). В этом случае:\n\n1. Устанавливаем Ruby и RubyGems (обычно RubyGems идет сразу с Ruby, но где-то может придется ставить отдельно).\n2. Устанавливаем MxxRu: `gem install Mxx_ru`\n3. Делаем git clone: `git clone https://github.com/Stiffstream/async_restinio_async_libcurl_ru`\n4. Заходим в нужный подкаталог: `cd async_restinio_async_libcurl_ru`\n5. Запускаем команду `mxxruexternals`.\n6. Ждем пока все зависимости подтянутся.\n\nПосле этого можно заходить в подкаталог `dev` и переходить к компиляции.\n\n## Как попробовать?\n\n### Компиляция посредством CMake\n\nДля сборки CMake применяется стандартный набор действий:\n\n~~~~~\ncd async_restinio_async_libcurl_ru/dev\nmkdir cmake_build\ncd cmake_build\ncmake -DCMAKE_INSTALL_PREFIX=target -DCMAKE_BUILD_TYPE=release ..\ncmake --build . --config Release\ncmake --build . --target install\n~~~~~\n\nЗатем заходим в подкаталог `target/bin` и запускаем оттуда получившиеся исполняемые файлы.\n\n### Компиляция посредством MxxRu\n\nДля сборки через MxxRu:\n\n~~~~~\ncd async_restinio_async_libcurl_ru/dev\nruby build.rb\n~~~~~\n\nРезультаты сборки будут в находится в подкаталоге `target` и его подкаталогах с именами вида `gcc_7_3_0__x86_64_pc_linux_gnu`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstiffstream%2Fasync_restinio_async_libcurl_ru","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstiffstream%2Fasync_restinio_async_libcurl_ru","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstiffstream%2Fasync_restinio_async_libcurl_ru/lists"}