Deadlock-free asynchronous message reordering in rust with multiparty session types
Zak Cutner, Nobuko Yoshida, Martin Vassor
摘要
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, sending and receiving messages in an arbitrary order to maximise computationcommunication overlap (a popular optimisation in messagepassing applications) opens up a Pandora's box of 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 are 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 order send/receive messages while preserving deadlockfreedom. For this, Rumpsteak incorporates two recent advanced session type theories: (1) 𝑘-multiparty compatibility (𝑘-MC), which globally verifies the safety of a set of participants, and (2) asynchronous multiparty session subtyping, which locally verifies optimisations in the context of a single participant. Specifically, we propose a novel algorithm for asynchronous subtyping that is both sound and decidable.
We first evaluate the performance and expressiveness of Rumpsteak against three previous Rust implementations. We discover that Rumpsteak is around 1.7-8.6x more efficient and can safely express many more examples by virtue of offering arbitrary ordering of messages. Secondly, we analyse the complexity of our new algorithm and benchmark it against 𝑘-MC and a binary session subtyping algorithm. We find they are exponentially slower than Rumpsteak's.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper4
- Top-Down or Bottom-Up? Complexity Analyses of Synchronous Multiparty Session TypesThien Udomsrirungruang, Nobuko YoshidaPOPL 2025 · 被引用 7 次
- Characterizing Implementability of Global Protocols with Infinite States and DataElaine Li, Felix Stutz, Thomas Wies, Damien ZuffereyOOPSLA 2025 · 被引用 2 次
- Top-Down = Bottom-Up: Sound and Complete Characterisations of Liveness by Multiparty Global ProtocolsKai Pischke, Nobuko YoshidaOOPSLA 2026
- Implementability of Global Distributed Protocols Modulo Network ArchitecturesElaine Li, Thomas WiesPLDI 2026
它引用的顶会 Paper4
- Understanding memory and thread safety practices and issues in real-world Rust programsBoqin Qin, Yilun Chen, Zeming Yu, Linhai Song 等PLDI 2020 · 被引用 112 次
- Statically verified refinements for multiparty protocolsFangyi Zhou, Francisco Ferreira, Raymond Hu, Rumyana Neykova 等OOPSLA 2020 · 被引用 38 次
- Precise subtyping for asynchronous multiparty sessionsSilvia Ghilezan, Jovanka Pantovic, Ivan Prokic, Alceste Scalas 等POPL 2021 · 被引用 26 次
- CAMP: cost-aware multiparty session protocolsDavid Castro-Perez, Nobuko YoshidaOOPSLA 2020 · 被引用 16 次
相关 Paper
- Separation and Encodability in Mixed Choice Multiparty SessionsKirstin Peters, Nobuko YoshidaLICS 2024 · 被引用 10 次
- Hybrid Multiparty Session Types: Compositionality for Protocol Specification through Endpoint ProjectionLorenzo Gheri, Nobuko YoshidaOOPSLA 2023 · 被引用 5 次
- Mixtris: Mechanised Higher-Order Separation Logic for Mixed Choice Multiparty Message PassingJonas Kastberg Hinrichsen, Iwan Quémerais, Lars BirkedalOOPSLA 2026
- Verified Lock-Free Session Channels with LinkingThomas Somers, Robbert KrebbersOOPSLA 2024 · 被引用 2 次
- Mixed Choice in Asynchronous Multiparty Session TypesLaura Bocchi, Raymond Hu, Adriana Laura Voinea, Simon ThompsonOOPSLA 2026
