Pulsar is a Clojure wrapper for the Quasar library, which is an actor-based programming toolkit for the JVM. When using actor libraries, actors usually map one on one to a thread, and therefore may take more resources than necessary to handle the sometimes simple code they need to process.
Quasar and Pulsar introduce the concept of fibers, or really lightweight processing units, which can send messages to each other. This results in a simple to read and use set of processing units that facilitate asynchronous programming to a new level.
A new project.clj
file needs to be slightly updated with dependencies. Also note the java-agent
directive that adds Quasar core to the set of runtime instrumentation.
Note that the purpose of an agent is to provide instrumentation capabilities to the application, in other words, the capability to redefine the signature of the class files during run-time. The juicy details would need a reading of the Quasar code, but let's just say...