Skip to content

Kompact

Actors and typed components in Rust, bringing flexible messaging and explicit interfaces together for distributed systems.

Motivation and approach

Distributed systems need both flexible communication and clear boundaries between components. Kompact combines actor messaging with typed component ports, so applications can use each where it fits. Rust’s type system helps check those interfaces while the runtime schedules components and handles communication.

My contribution

I created Kompact as part of my research into compile-time safety and runtime performance. I am its principal author and continue to maintain and develop it, including supervising contributions to the wider system.

Adam Hasselberg built most of the networking stack, a crucial part of Kompact’s distributed messaging performance.

Outcome and current status

Kompact is an open-source framework with a published Rust crate, a tutorial and API documentation. My doctoral dissertation describes the model and evaluates its performance in the research setting.

Today, development is driven mainly by Flotsync, my experimental project for local-first, peer-to-peer group replication. It is the largest Kompact user I am aware of.

Kompact also underpinned the Arcon research runtime for stream analytics. That project is no longer actively developed; the Arcon paper linked here records the research and its relationship to the Arc compiler.