asyncplusplus
brew install asyncplusplus
v1.2
MIT
Concurrency framework for C++11
4
30-day installs · #11053
6
90-day · #13823
26
365-day · #13081
1.4k
★ GitHub stars · updated 1y ago
Build dependencies
Links
- https://github.com/Amanieu/asyncplusplus
- GitHub: Amanieu/asyncplusplus
- Brew formula source: Formula/a/asyncplusplus.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"cmake"
],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Concurrency framework for C++11",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:35:35+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "asyncplusplus",
"github_default_branch": "master",
"github_last_commit_at": "2024-10-11T12:13:08Z",
"github_readme_excerpt": "Async++\n=======\n\nAsync++ is a lightweight concurrency framework for C++11. The concept was inspired by the [Microsoft PPL library](http://msdn.microsoft.com/en-us/library/dd492418.aspx) and the [N3428](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3428.pdf) C++ standard proposal.\n\nExample\n-------\nHere is a short example which shows some features of Async++:\n\n```c++\n#include \u003ciostream\u003e\n#include \u003casync++.h\u003e\n\nint main()\n{\n auto task1 = async::spawn([] {\n std::cout \u003c\u003c \"Task 1 executes asynchronously\" \u003c\u003c std::endl;\n });\n auto task2 = async::spawn([]() -\u003e int {\n std::cout \u003c\u003c \"Task 2 executes in parallel with task 1\" \u003c\u003c std::endl;\n return 42;\n });\n auto task3 = task2.then([](int value) -\u003e int {\n std::cout \u003c\u003c \"Task 3 executes after task 2, which returned \"\n \u003c\u003c value \u003c\u003c std::endl;\n return value * 3;\n });\n auto task4 = async::when_all(task1, task3);\n auto task5 = task4.then([](std::tuple\u003casync::task\u003cvoid\u003e,\n async::task\u003cint\u003e\u003e results) {\n std::cout \u003c\u003c \"Task 5 executes after tasks 1 and 3. Task 3 returned \"\n \u003c\u003c std::get\u003c1\u003e(results).get() \u003c\u003c std::endl;\n });\n\n task5.get();\n std::cout \u003c\u003c \"Task 5 has completed\" \u003c\u003c std::endl;\n\n async::parallel_invoke([] {\n std::cout \u003c\u003c \"This is executed in parallel...\" \u003c\u003c std::endl;\n }, [] {\n std::cout \u003c\u003c \"with this\" \u003c\u003c std::endl;\n });\n\n async::parallel_for(async::irange(0, 5), [](int x) {\n std::cout \u003c\u003c x;\n });\n std::cout \u003c\u003c std::endl;\n\n int r = async::parallel_reduce({1, 2, 3, 4}, 0, [](int x, int y) {\n return x + y;\n });\n std::cout \u003c\u003c \"The sum of {1, 2, 3, 4} is \" \u003c\u003c r \u003c\u003c std::endl;\n}\n\n// Output (order may vary in some places):\n// Task 1 executes asynchronously\n// Task 2 executes in parallel with task 1\n// Task 3 executes after task 2, which returned 42\n// Task 5 executes after tasks 1 and 3. Task 3 returned 126\n// Task 5 has completed\n",
"github_repo": "Amanieu/asyncplusplus",
"github_stars": 1417,
"github_topics": [],
"homepage": "https://github.com/Amanieu/asyncplusplus",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 4,
"installs_365d": 26,
"installs_90d": 6,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "MIT",
"llm_generated_at": null,
"llm_model": null,
"name": "asyncplusplus",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 11053,
"rank_365d": 13081,
"rank_90d": 13823,
"raw_hash": "e251ced86b91aa32",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/a/asyncplusplus.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": null,
"version_stable": "1.2",
"versioned_formulae": [],
"why_use_this": null
}