{"id":15047740,"url":"https://github.com/luncliff/coroutine","last_synced_at":"2025-04-05T09:09:21.805Z","repository":{"id":37664601,"uuid":"152395912","full_name":"luncliff/coroutine","owner":"luncliff","description":"C++ 20 Coroutines in Action (Helpers + Test Code Examples) ","archived":false,"fork":false,"pushed_at":"2022-08-08T18:07:31.000Z","size":12435,"stargazers_count":489,"open_issues_count":3,"forks_count":43,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-03-29T08:08:13.978Z","etag":null,"topics":["clang","clang-cl","coroutine","coroutines","coroutines-ts","cpp","cpp20","examples","msvc"],"latest_commit_sha":null,"homepage":"https://luncliff.github.io/coroutine","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luncliff.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-10T09:16:09.000Z","updated_at":"2025-03-27T17:45:00.000Z","dependencies_parsed_at":"2022-07-12T16:42:38.848Z","dependency_job_id":null,"html_url":"https://github.com/luncliff/coroutine","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2Fcoroutine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2Fcoroutine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2Fcoroutine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2Fcoroutine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luncliff","download_url":"https://codeload.github.com/luncliff/coroutine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247312082,"owners_count":20918344,"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":["clang","clang-cl","coroutine","coroutines","coroutines-ts","cpp","cpp20","examples","msvc"],"created_at":"2024-09-24T21:04:07.236Z","updated_at":"2025-04-05T09:09:21.452Z","avatar_url":"https://github.com/luncliff.png","language":"C++","readme":"# coroutine\r\n\r\nC++ 20 Coroutines in Action\r\n\r\n[![Build Status](https://dev.azure.com/luncliff/personal/_apis/build/status/luncliff.coroutine?branchName=master)](https://dev.azure.com/luncliff/personal/_build/latest?definitionId=27\u0026branchName=master)\r\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/38aa16f6d7e046898af3835918c0cd5e)](https://app.codacy.com/app/luncliff/coroutine?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=luncliff/coroutine\u0026utm_campaign=Badge_Grade_Dashboard)\r\n[![](https://sonarcloud.io/api/project_badges/measure?project=luncliff_coroutine\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=luncliff_coroutine)\r\n[![](https://sonarcloud.io/api/project_badges/measure?project=luncliff_coroutine\u0026metric=ncloc)](https://sonarcloud.io/dashboard?id=luncliff_coroutine)\r\n![CMake](https://img.shields.io/badge/CMake-3.21+-00529b)\r\n\r\n### Purpose of this repository\r\n\r\n* Help understanding of the C++ Coroutines\r\n* Provide meaningful design example with the feature\r\n\r\nIn that perspective, the library will be maintained as small as possible. Have fun with them. And try your own coroutines!\r\nIf you want some tool support, please let me know. I'm willing to learn about it.\r\n\r\n**If you are looking for another materials, visit [the MattPD's collection](https://gist.github.com/MattPD/9b55db49537a90545a90447392ad3aeb#file-cpp-std-coroutines-draft-md)!**\r\n\r\n* Start with the [GitHub Pages](https://luncliff.github.io/coroutine) :)  \r\n  You will visit the [test/](./test/) and ~~[interface/](./interface/coroutine)~~ folder while reading the docs.\r\n* This repository has some custom(and partial) implementation for the C++ Coroutines in the [`\u003ccoroutine/frame.h\u003e`](./interface/coroutine/frame.h).  \r\n  It can be activated with macro `USE_PORTABLE_COROUTINE_HANDLE`\r\n\r\n### Toolchain Support\r\n\r\nCurrently using [CMake](./CMakeLists.txt) to generate buildsystem files with the following compilers.\r\n\r\n* `msvc` v142+\r\n* `clang-cl` 13+\r\n* `clang` 12+\r\n* `AppleClang` 12+\r\n* `gcc` 10.0+\r\n\r\n## How To\r\n\r\n### Setup\r\n\r\n```ps1\r\ngit clone \"https://github.com/luncliff/coroutine\"\r\nPush-Location coroutine\r\n  # ...\r\nPop-Location\r\n```\r\n\r\n### Test\r\n\r\nExploring [test(example) codes](./test) will be helpful. The library uses CTest for its test.\r\nAppVeyor \u0026 Travis CI build log will show the execution of them.\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncliff%2Fcoroutine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluncliff%2Fcoroutine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncliff%2Fcoroutine/lists"}