Visit us on GitHub

A Language for Distributed, Eventually Consistent Computations

Why Lasp?

Lasp is a new programming model designed to simplify large scale, fault-tolerant, distributed programming. It leverages ideas from distributed dataflow extended with convergent replicated data types, or CRDTs. This supports computations where not all participants are online together at a given moment. The initial design supports synchronization-free programming by combining CRDTs together with primitives for composing them inspired by functional programming. This lets us write long-lived fault-tolerant distributed applications, including ones with nonmonotonic behavior, in a functional paradigm.

Learn about Lasp!

Listen to Christopher Meiklejohn discuss the inspiration and design for the Lasp programming model.

Run Lasp with Docker!

Follow these two easy steps to get a Lasp instance running with Docker! (For this image to run correctly, the docker-machine needs to be configured with more than one processor.)


        

Erlang Code Sample

Lasp's prototype implementation is provided as an Erlang library. Erlang is an excellent language for distribution and concurrency, and allows us to prototype new features for Lasp quickly. Below is a code sample for creating a distributed set and applying a map function to the set.


        

Resources

Talks

There have been several talks about Lasp, but for a good overview of how the language and runtime work:

Proceedings

Conference and workshop papers relating to Lasp and its predecesors, have been presented at:

Blogs and Articles

A blog series on Lasp is available:

Lasp has also been featured in InfoQ.

Seminars

Lasp has been presented at: