A Clojure library providing Erlang-style concurrency with fibers, channels, and actors built on Quasar.
Pulsar is a Clojure library that implements Erlang-style concurrency primitives, including fibers, channels, and actors, on the JVM. It solves the challenge of building highly concurrent and scalable applications in Clojure by providing lightweight, message-passing-based alternatives to traditional threading models.
Clojure developers building concurrent, distributed, or high-throughput systems, especially those familiar with Erlang or Go's concurrency patterns.
Developers choose Pulsar for its Erlang-inspired API, efficient fiber-based concurrency via Quasar, and seamless integration with Clojure, offering a robust alternative to shared-state concurrency with better scalability and fault tolerance.
Fibers, Channels and Actors for Clojure
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a familiar Clojure syntax mirroring Erlang's concurrency patterns, making it accessible for developers experienced with Erlang or Go, as highlighted in the README's description.
Leverages Quasar for efficient fiber scheduling, enabling massive concurrency with minimal overhead compared to traditional JVM threads, as noted in the features.
Facilitates building distributed and concurrent systems with isolated state and message-driven behavior, based on the actor model described in the key features.
Wraps Quasar to bring Erlang-style concurrency to Clojure on the JVM, allowing seamless use within existing Java or Clojure projects, as emphasized in the philosophy.
Requires mandatory use of a Java agent for instrumentation, adding deployment complexity and potential issues in containerized or restricted environments, as specified in the 'Getting started' section.
Being version 0.7.9 suggests it may not be production-ready, with possible breaking changes and limited long-term support, indicated by the release version in the README.
Relies on external documentation links and a blog post from 2013, which might lack comprehensive, up-to-date examples or troubleshooting guides for modern use cases.