The Clojure core.async library allows asynchronous communication using channels, with similar syntax and capabilities to Google's Go language. The core.async library solves many common problems in an elegant way, cleaning up event callback setup and adding simple concurrency primitives. It also highlights one of the advantages of the Lisp nature of Clojure: channels add operators that are consistent with existing Clojure operators, seamlessly weaving new functionality into the language core. In addition, core.async is supported in both Clojure and ClojureScript (despite JavaScript's lack of threads), utilizing underlying platform abstractions to provide a consistent interface to both languages.