Moving from the BEAM to Common Lisp: What are my concurrency options?

This page summarizes the projects mentioned and recommended in the original post on /r/lisp

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • bailout

    Supervisor trees (and some more) for Common Lisp

  • You'll find more, I suppose, "traditional" concurrency control constructs like locks and mailboxes used. But actors aren't an uncommon convention in CL, though I don't know of any actor libraries that I like; they just kinda happen when I write programs. I also started writing a supervisor tree library with the idea of integrating with the condition system and shared state, the latter of which is a funny optimisation of an actor that multiple other actors message, if you squint far too hard.

  • cl-gserver

    Sento - Actor framework featuring actors and agents for easy access to state and asynchronous operations.

  • You might be interested in cl-gserver0.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Common-Lisp-Actors

    An actor system for Common Lisp.

  • There are very, very competent concurrency libraries already. I pointed you to them already. They serve as primitives to roll your own solutions -- You can get most of the functionality of Erlang actors (and virtually all of the important parts regarding concurrency) with threading (green or OS), CSP channels, and writing a few macros. Go look at a lot of the actor libraries you mentioned that are "long dead" and you'll notice they do A LOT with just a few hundred lines of code. This one gets basic functionality with just straight threading primitives in 131 lines.

  • Lisp-Actors

    Thread-agnostic Actors in Common Lisp

  • David McClain has product level Lisp-Actors, if you use LispWorks.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts