Hacker ApprovedDepartments

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%
Each figure is one person. RecommendsCriticizes

Recommended in 6 of 13 months

  1. November 2025: not recommended
  2. December 2025: recommended
  3. January 2026: not recommended
  4. February 2026: not recommended
  5. March 2026: not recommended
  6. April 2026: recommended
  7. May 2026: recommended
  8. June 2026: recommended
  9. July 2026: not recommended
  10. August 2026: recommended
  11. September 2026: recommended
  12. October 2026: not recommended
  13. 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.

core.async compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
Tokio574556%12——
Akka12957%7——
ZIO11285%9—Approved
Trio Python library100100%8—Approved
core.asyncThis page9469%6——
See all 11 concurrency libraries, ranked

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”

RecommendsComment from 28 Sep 2026 in “The problem is not AI code, but not knowing about system architecture or intent”

“you look at it and you think, is this brainfuck?”

CriticizesComment from 28 Sep 2026 in “What makes Lisp difficult to read?”

“it very often increases readability and understanding of the language”

RecommendsComment from 27 Sep 2026 in “We Should Be Able to Change Our Languages”

“Or take core.async's `go`. It takes an arbitrary body, analyzes it into an AST”

RecommendsComment from 14 Aug 2026 in “Gödel, Escher, Elisp: The Beauty of Macros”

“Clojure's core.async could be less async and more CML in my taste.”

CriticizesComment from 7 Jul 2026 in “Poly/ML – A Standard ML Implementation”

“communicating only via core.async channels (CSP inspired) using immutable data structures is pretty neat”

RecommendsComment from 3 Jun 2026 in “My thoughts after using Clojure for about a month”

“same for core.async vs manifold”

CriticizesComment from 10 May 2026 on Hacker News

“the use of the go state machine renders certain debugging techniques useless”

CriticizesComment from 9 May 2026 in “ClojureScript Gets Async/Await”

“I'd say core.async's are pretty minor compared to most other systems.”

MixedComment 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”

MixedComment from 8 May 2026 in “ClojureScript Gets Async/Await”

“For me it also lacks observability.”

CriticizesComment from 8 May 2026 in “ClojureScript Gets Async/Await”

“wrapping async await functions with CSP was a better way to handle this”

RecommendsComment from 8 May 2026 in “ClojureScript Gets Async/Await”

“there are many reasons to avoid core.async, especially in 2026”

CriticizesComment from 8 May 2026 in “ClojureScript Gets Async/Await”

“how cool it is that you can get new language features before they are available in the host language”

RecommendsComment from 8 May 2026 in “ClojureScript Gets Async/Await”

“Clojure core.async, http libs and Java VM are so rock solid”

RecommendsComment from 8 May 2026 in “How to make SSE token streams resumable, cancellable, and multi-device”

“core.async can be a really nice way to wrangle together tasks”

RecommendsComment from 2 Apr 2026 in “Bringing Clojure programming to Enterprise (2021)”

“core.async is simply wonderful”

RecommendsComment from 2 Apr 2026 in “Bringing Clojure programming to Enterprise (2021)”

“great concurrency primitives, core.async”

RecommendsComment from 15 Dec 2025 in “AI agents are starting to eat SaaS”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.