SkillAgentSearch skills...

Core.async

Facilities for async programming and communication in Clojure

Install / Use

/learn @clojure/Core.async
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

core.async

A Clojure library providing facilities for async programming and communication.

Documentation

Presentations

Releases and Dependency Information

This project follows the version scheme MAJOR.MINOR.COMMITS where MAJOR and MINOR provide some relative indication of the size of the change, but do not follow semantic versioning. In general, all changes endeavor to be non-breaking (by moving to new names rather than by breaking existing names). COMMITS is an ever-increasing counter of commits since the beginning of this repository.

Latest release: 1.9.865

deps.edn dependency information:

  org.clojure/core.async {:mvn/version "1.9.865"}

Leiningen dependency information:

 [org.clojure/core.async "1.9.865"]

Maven dependency information:

<dependency>
  <groupId>org.clojure</groupId>
  <artifactId>core.async</artifactId>
  <version>1.9.865</version>
</dependency>

Contributing

Contributing to Clojure projects requires a signed Contributor Agreement. Pull requests and GitHub issues are not accepted; please use the core.async JIRA project to report problems or enhancements.

CLJS Tests

To run the ClojureScript tests:

  • lein cljsbuild once
  • open script/runtests.html
  • View JavaScript console for test results

License

Distributed under the Eclipse Public License, the same as Clojure.

Copyright © Rich Hickey and contributors

Changelog

  • Release 1.10.870-alpha2 on 2026-04-06
    • ASYNC-275 (CLJ) Fixed flow/futurize to retain original behavior of propagating exceptions
  • Release 1.10.864-alpha1 on 2026-03-19
    • Alpha release of core.async.flow - all APIs subject to change
    • ASYNC-274 (CLJ) Fixed flow/futurize stopped returning a future on Executor change
    • ASYNC-270 (CLJ) futurize with no :exec arg throws
  • Release 1.9.865 on 2026-03-19 (accumulated changes since 1.8.741)
    • Added datafy support for channels and buffers
    • ASYNC-273 (CLJ) alts!! callbacks should dispatch on caller when possible
    • ASYNC-272 (CLJ) Use JVM virtual threads in io-thread
    • ASYNC-269 (CLJ) Noop callbacks dispatch on caller thread
  • Release 1.9.859-alpha4 on 2026-03-16
    • ASYNC-273 (CLJ) alts!! callbacks should dispatch on caller when possible
    • ASYNC-274 (CLJ) Fixed flow/futurize stopped returning a future on Executor change
    • ASYNC-270 (CLJ) futurize with no :exec arg throws
  • Release 1.9.847-alpha3 on 2026-03-11
    • ASYNC-262 (CLJ) REVERTED from 1.9.829-alpha2
    • ASYNC-272 (CLJ) Use JVM virtual threads in io-thread
    • ASYNC-269 (CLJ) Noop callbacks dispatch on caller thread
  • Release 1.9.829-alpha2 on 2025-10-01
    • ASYNC-262 (CLJ) Use virtual threads when available for go and io-thread
  • Release 1.9.808-alpha1 on 2025-04-28
    • First alpha release of core.async.flow - all APIs subject to change
    • Added datafy support for channels and buffers
  • Release 1.8.741 on 2025-04-07
    • ASYNC-234 (CLJ) Inactive alt handlers hold strong references to (potentially large) caller state after the alt completes
  • Release 1.8.735 on 2025.04.02
    • Fix reflection warnings when using clojure.core.async.go-checking
  • Release 1.8.730 on 2025.04.02, effective changes since last non-beta release:
    • ASYNC-256 (CLJ) Add io-thread and System property clojure.core.async.executor-factory
    • ASYNC-260 (CLJ) Remove now unused property clojure.core.async.pool-size
    • ASYNC-255 (CLJ) alts guards against put of nil message on entry
  • Release 1.8.726-beta3 on 2025.03.31
    • ASYNC-259 (CLJ) Update clojure.core.async.go-checking with new executor pools
  • Release 1.8.718-beta2 on 2025.03.10
    • ASYNC-259 (CLJ) Implement clojure.core.async.go-checking with new executor pools
    • ASYNC-260 (CLJ) Remove now unused property clojure.core.async.pool-size
    • ASYNC-261 (CLJ) Put clojure.core.async/thread-macro-executor var back into place
  • Release 1.8.711-beta1 on 2025.02.19
    • ASYNC-256 (CLJ) Add io-thread and System property clojure.core.async.executor-factory
    • ASYNC-255 (CLJ) alts guards against put of nil message on entry
    • Update tools.analyzer.jvm to 1.3.2
  • Release 1.7.701 on 2024.12.17
    • ASYNC-254 (CLJ) Completions for blocking ops can be directly delivered without enqueuing for dispatch
    • ASYNC-252 (CLJ) Move go expander from ioc-macros to impl.go namespace
    • ASYNC-246 (CLJ) Fix non-deterministic test
    • Update deps to latest
  • Release 1.6.681 on 2023.08.09
    • Revert ASYNC-248 (CLJ) due to the issues in ASYNC-249
    • Update to tools.analyzer.jvm 1.2.3
  • Release 1.6.673 on 2022.10.27
    • ASYNC-248 (CLJ) Dynamically load ioc analyzer only when needed
    • Perf improvements in go macro compilation
    • Note: as of this version, core.async requires Clojure 1.10
  • Release 1.5.648 on 2021.12.14
    • Update dep for tools.analyzer.jvm to 1.2.2
  • Release 1.5.644 on 2021.12.06
    • Update dep for tools.analyzer.jvm to 1.2.1
  • Release 1.5.640 on 2021.11.23
    • ASYNC-204 (both) On put to closed channel, commit handler to allow pending alt ops to be cleaned up
    • ASYNC-235 (both) Fix ioc-macros/return-chan registers a callback with incorrect arity
    • ASYNC-144 (both) Tweak docstring in pipeline-async
    • ASYNC-238 (both) Fix a/map with empty chan vector hangs
  • Release 1.4.627 on 2021.11.03
    • ASYNC-132 (CLJS) Can't close over locals in #js in go)
    • ASYNC-117 (CLJS) let-bindings unavailable in #js literals in go-blocks
    • Update dep for tools.analyzer.jvm to 1.2.0
  • Release 1.3.618 on 2021.04.26
    • ASYNC-237 (CLJS) timeout timers access array elements with out-of-bounds index
  • Release 1.3.610 on 2020.07.24
    • Update dep for tools.analyzer.jvm to 1.1.0
  • Release 1.2.603 on 2020.05.11
    • Fix bug in cljs impl of onto-chan! in 1.2.598
  • Release 1.2.598 on 2020.05.11
    • Add onto-chan! and to-chan! to cljs core.async
  • Release 1.2.593 on 2020.05.11
    • onto-chan use of go-loop incompatible with blocking colls, replace with onto-chan! and onto-chan!!
  • Release 1.1.587 on 2020.04.01
    • Added :require-macros for the promise interop from 1.1.582
  • Release 1.1.582 on 2020.03.31
    • Bumped deps - clojure 1.9, clojurescript 1.10.1.597, cljsbuild 1.1.7, tools.analyzer.jvm 1.0.0
    • ASYNC-165 (CLJS) Fix inlining of let binding
    • ASYNC-184 (CLJS) Port CLJ exception handling fixes
    • ASYNC-228 (CLJS) Fix skip list for CLJS timers
    • ASYNC-96 (CLJS) Fix full checking in fixed buffer
    • ASYNC-230 (CLJS) Add js/Promise interop via core.async.interop
  • Release 1.0.567 on 2020.02.18
  • Release 0.7.559 on 2020.01.10
    • ASYNC-198 (CLJ) Fix exception rewriting in go can replace return value
    • ASYNC-220 (CLJ) Fix exception in go finally swallows exception of outer try
    • ASYNC-229 (CLJ) Fix go finally block executed twice
    • [ASYNC-21
View on GitHub
GitHub Stars2.0k
CategoryDevelopment
Updated5h ago
Forks213

Languages

Clojure

Security Score

95/100

Audited on Apr 6, 2026

No findings