Hi everyone,
We are pleased to announce that Molecule, a novel concurrent programming library combining monadic and streaming I/O for Scala, is now open-source:
https://github.com/molecule-labs/molecule#molecule.
Molecule offers several features that set it apart from the classical Actor model, like Pi-Calculus style higher-order communication channels, streaming primitives and support for seamless termination. Its rationale and fundamental design
principles are described and illustrated in details over three simple examples in a
paper that was accepted at OOPSLA 2012. Next to that, you can find many additional examples on Github in the 'molecule-{core,io,net}-examples' directories. For instance, in the 'net' examples, we show how to implement protocols conveniently using fast incremental parser
combinators that can parse binary
streams directly from non-blocking sockets.
By releasing Molecule as open-source, we aim to support research in the domain but also to encourage creative uses, contributions, extensions, derivative work, benchmarks or even competing implementations of the library. Note that if you are interested in performance comparisons, you might want to reuse the benchmarking suite available in 'molecule-benchmarks', which is the one we used to compare Molecule against Scala Actors (2.9.3) in the paper. Also beware that, although Molecule is used in several (successful) proof of
concepts at work and that it has proven to be stable for several months now, it has never been used
outside research context. If you want to start a discussion or if you have questions on the library, don't hesitate to drop us a word either using our email address or on
the project's mailing list.
Enjoy!
Sébastien & Koen