core.async
Ranked 5 of 11 concurrency libraries by recommenders
Recommended for clean channel-based concurrency on immutable data. Critics say the go state machine makes some debugging techniques useless.
Recommended for clean channel-based concurrency on immutable data. Critics say the go state machine makes some debugging techniques useless.
13 people gave an opinion
- recommend it
- 9
- criticize it
- 4
- approval share
- 69%
Recommended in 6 of 13 months
- November 2025: not recommended
- December 2025: recommended
- January 2026: not recommended
- February 2026: not recommended
- March 2026: not recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: not recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 9 people recommend itNeeds 10 or more, not met.
- 2.3 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 6 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Clean channel-based concurrency model
“communicating only via core.async channels (CSP inspired) using immutable data structures is pretty neat”
Comment from 3 Jun 2026 in “My thoughts after using Clojure for about a month” “wrapping async await functions with CSP was a better way to handle this”
Comment from 8 May 2026 in “ClojureScript Gets Async/Await” “great concurrency primitives, core.async”
Comment from 15 Dec 2025 in “AI agents are starting to eat SaaS” Makes thread coordination easy to follow
“Good ones, like core.async, make it easy to understand how threads and the like are glued together”
Comment from 28 Sep 2026 in “The problem is not AI code, but not knowing about system architecture or intent” “core.async can be a really nice way to wrangle together tasks”
Comment from 2 Apr 2026 in “Bringing Clojure programming to Enterprise (2021)” Rock solid and well liked
“Clojure core.async, http libs and Java VM are so rock solid”
Comment from 8 May 2026 in “How to make SSE token streams resumable, cancellable, and multi-device” “core.async is simply wonderful”
Comment from 2 Apr 2026 in “Bringing Clojure programming to Enterprise (2021)” Async/await style before host language
“how cool it is that you can get new language features before they are available in the host language”
Comment from 8 May 2026 in “ClojureScript Gets Async/Await” “it worked: a few quirks but we did have async/await since more than a decade”
Comment from 8 May 2026 in “ClojureScript Gets Async/Await”
What people warn about
Each mark is one comment
Go state machine hinders debugging and observability
“the use of the go state machine renders certain debugging techniques useless”
Comment from 9 May 2026 in “ClojureScript Gets Async/Await” “For me it also lacks observability.”
Comment from 8 May 2026 in “ClojureScript Gets Async/Await” Critics prefer CML or manifold alternatives
“Clojure's core.async could be less async and more CML in my taste.”
Comment from 7 Jul 2026 in “Poly/ML – A Standard ML Implementation” “same for core.async vs manifold”
Comment from 10 May 2026 on Hacker News Quirks and minor drawbacks
“it worked: a few quirks but we did have async/await since more than a decade”
Comment from 8 May 2026 in “ClojureScript Gets Async/Await” “I'd say core.async's are pretty minor compared to most other systems.”
Comment from 8 May 2026 in “ClojureScript Gets Async/Await”
Other concurrency libraries people recommend
The four most recommended other concurrency libraries, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Tokio | 57 | 45 | 56% | 12 | — | — |
| Akka | 12 | 9 | 57% | 7 | — | — |
| ZIO | 11 | 2 | 85% | 9 | — | Approved |
| Trio Python library | 10 | 0 | 100% | 8 | — | Approved |
| core.asyncThis page | 9 | 4 | 69% | 6 | — | — |
What people said
All 18 comments that mention it, newest first. Each links to the original comment.
“Good ones, like core.async, make it easy to understand how threads and the like are glued together”
“you look at it and you think, is this brainfuck?”
“it very often increases readability and understanding of the language”
“Or take core.async's `go`. It takes an arbitrary body, analyzes it into an AST”
“Clojure's core.async could be less async and more CML in my taste.”
“communicating only via core.async channels (CSP inspired) using immutable data structures is pretty neat”
“same for core.async vs manifold”
“the use of the go state machine renders certain debugging techniques useless”
“I'd say core.async's are pretty minor compared to most other systems.”
“it worked: a few quirks but we did have async/await since more than a decade”
“For me it also lacks observability.”
“wrapping async await functions with CSP was a better way to handle this”
“there are many reasons to avoid core.async, especially in 2026”
“how cool it is that you can get new language features before they are available in the host language”
“Clojure core.async, http libs and Java VM are so rock solid”
“core.async can be a really nice way to wrangle together tasks”
“core.async is simply wonderful”
“great concurrency primitives, core.async”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.