AsyncScala projects provide Scala implementation of asynchronous control constructs from E programming language and some additional control constructs inspired by Occam.
The AsyncScala framework simplifies writing asynchronous event-driven dataflow-based applications in Scala. It mainly builds upon ideas and syntax of E programming language. However, it also draws ideas from other programming languages like Occam and frameworks like SEDA as well. In addition to core library that supports common asynchronous communication patterns. The framework provides a wrapper for NIO-based sockets that simplify creation of network applications that support a high number of concurrent connections.
The framework automates the following common tasks for event loop programming:
The framework is going to change and it is currently of alpha-quality. So there should be no expectation of binary or source compatibility between different versions (I have changed framework a lot when I was preparing this release). Use it on own risk. The asynchronous control flow DSL defined in AsyncControl object will likely stay the same, unless some more usable notation is discovered.
There are also projects AsyncObjects for Java and AsyncGroovy that implement the same ideas. These projects was predecessors to this project. However, when working on this project, I have realized how these projects could be improved as well (thanks to picky Scala type systems forces to rethink some hacks into more straightforward and logical solution). So consider their state as somewhat obsolete. That two projects will be likely merged into one and maybe some code will be shared with Scala version as well.