Deadlock-free asynchronous message reordering in Rust with multiparty session types
Zak Cutner, Nobuko Yoshida, Martin Vassor

TL;DR
Rumpsteak is a Rust framework that guarantees deadlock-free asynchronous message passing with arbitrary message ordering, using advanced multiparty session types to enhance safety and efficiency in concurrent systems.
Contribution
It introduces a novel, sound, and decidable asynchronous subtyping algorithm and extends session type support to arbitrary message ordering in Rust.
Findings
Rumpsteak is 1.7-8.6x more efficient than previous implementations.
It supports more expressive message ordering without deadlocks.
The new algorithm outperforms existing methods in complexity and speed.
Abstract
Rust is a modern systems language focused on performance and reliability. Complementing Rust's promise to provide "fearless concurrency", developers frequently exploit asynchronous message passing. Unfortunately, arbitrarily ordering sending and receiving messages to maximise computation-communication overlap (a popular optimisation to message-passing applications) opens up a Pandora's box of further subtle concurrency bugs. To guarantee deadlock-freedom by construction, we present Rumpsteak: a new Rust framework based on multiparty session types. Previous session type implementations in Rust are either built upon synchronous and blocking communication and/or limited to two-party interactions. Crucially, none support the arbitrary ordering of messages for efficiency. Rumpsteak instead targets asynchronous async/await code. Its unique ability is allowing developers to arbitrarily…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Software System Performance and Reliability · Parallel Computing and Optimization Techniques
