Skip to main content

Build time-sensitive, concurrent, and distributed systems — effortlessly


Lingua Franca allows you to write blazing-fast, deterministic, multi-threaded and distributed code without any knowledge about threads or synchronization. Focus on your application, not elusive concurrency bugs.

Deterministic Concurrency

Lingua Franca offers a straightforward way to write multi-threaded applications that ensure determinism by default, eliminating concerns about thread management, synchronization, and race conditions.

Built-in Timing Semantics

Timing is embedded within Lingua Franca's core, empowering developers to handle time-sensitive tasks with precision and without the complex timing logic typically required in concurrent programming.

ABC

Simplified Distribution

Lingua Franca enables seamless transition from single to distributed system architectures with minimal modifications, abstracting away the complexities of distributed systems programming.

Architect your application in LF
import Player from "../Player.lf"

main reactor RockPaperScissors {
// Instantiate two Player reactors here
player1 = new Player(id=1)
player2 = new Player(id=2)

// Make connections between them
player2.reveal -> player1.observe
player1.reveal -> player2.observe
}
Lingua Franca Diagram for the RockPaperScissor ProgramRockPaperScissorsplayer2:Playerobserverevealplayer1:Playerobservereveal

A New Programming Paradigm

Lingua Franca is the first reactor-oriented coordination language. It allows you to specify reactive components and compose them. The Lingua Franca semantics eliminate race conditions by construction and provides a sophisticated model of time that includes a notion of simultaneity that is clear and precise.

Consider a game of "rock paper scissors" where two players need to reveal their choice at the same instant. Not only is this implementation in Lingua Franca simple and intuitive, it is guaranteed to be fair. If the Player class were to observe the other's choice before revealing its own, Lingua Franca's causality analysis would find a causality loop and tell you that the program was invalid.

Not a New Programming Language

With Lingua Franca, you forget about thread libraries or message passing middlewares, but you continue using the languages you like. The bodies of reactive code that make up the functionality of reactors are written in the programming language of your choice. We currently support C, C++, Python, TypeScript, and Rust.

Open-source and Supported by Research

Lingua Franca was first developed at UC Berkeley where it was influenced by decades worth of research in models of computation.
A world map showing where key Lingua Franca contributors reside.A world map showing where key Lingua Franca contributors reside.
Shortly after its inception, researchers from Kiel University and TU Dresden joined the team, contributing diagram synthesis and layout technology, highly-efficient runtime implementations, and various compiler improvements. Since then, we have worked with real-time systems experts from TU Dallas, embedded systems specialists from NTNU, and networking and security researchers from Hanyang University and ASU.

A world map showing where key Lingua Franca contributors reside.