Search code examples
scalaerlangocamldistributedactor

Actor-based distributed concurrency libraries for Ocaml and other languages


Question

Can anyone recommend a library for Ocaml that offers an actor-based concurrency model for distributed computing?

Note here the "actor-based" and "distributed" - I'd like the actor-based model, but also I want seamless handling of distributed actors - I don't want to write the protocol to talk to them. The library should ideally also offer standard patterns such a supervisor trees and so on.


Motivation

I love Erlang concurrency model and ability to transparently deal with distributed processes and local processes together. However, I find Erlang's syntax to be rather limiting and would like a much more expressive language. I'm considering moving from Erlang to either Scala or Ocaml.

I know Scala has the Akka library which seems to offer a nice Scala version of Erlang's concurrency model. I'd like to see what is available on the Ocaml side.


Aside

I'd also be happy to hear about actor-based concurrency libraries for other languages (particularly C++, Haskell, Python and Ruby).


Solution

  • While it may not be the exact same model that Erlang uses, you might want to take a look at JoCaml, which is based on the join calculus.