The Swarm Framework

Welcome to Swarm!

What is Swarm?

Swarm is a framework allowing the creation of web applications which can scale transparently through a novel portable continuation-based approach. Like Map-Reduce, Swarm follows the maxim "move the computation, not the data". However Swarm takes the concept much further, allowing it to be applied to almost any computation, not just those that can be broken down into map and reduce operations.

In effect, Swarm is the ultimate Platform as a Service, going much further than systems like Google App Engine in relieving the programmer from the difficulties of cloud computing.


Swarm is at the proof-of-concept stage, and is implemented in Scala 2.9, using the delimited continuations plugin.

The proof-of-concept code is able to migrate a thread between servers as needed. Currently the best way to learn about Swarm is to watch the video above and then read about our current efforts on the Issues page.

Update 2016-07-17: The future of the Scala delimited continuations plugin is uncertain. Fortunately, the excellent Kotlin programming language appears to be implementing something similar in their upcoming 1.1 release, opening the possibility of implementing Swarm in Kotlin.

History of Swarm

Swarm was initially proposed by Ian Clarke in this blog post, although the concept has evolved considerably since then.


Grab the Swarm source code and run some of the demos by following the instructions in the README.

Read our Wiki.