Altmetric
Stay safe under panic: affine rust programming with multiparty session types
File | Description | Size | Format | |
---|---|---|---|---|
![]() | File embargoed until 01 January 10000 | 1.31 MB | Adobe PDF | Request a copy |
Title: | Stay safe under panic: affine rust programming with multiparty session types |
Authors: | Yoshida, N Lagaillardie, N Neykova, R |
Item Type: | Conference Paper |
Abstract: | Communicating systems comprise diverse software components across networks. To ensure their robustness, modern programming languages such as Rust provide both strongly typed channels, whose usage is guaranteed to be affine (at most once), and cancellation operations over binary channels. For coordinating components to correctly communicate and synchronize with each other, we use the structuring mechanism from multiparty session types, extending it with affine communication channels and implicit/explicit cancellation mechanisms. This new typing discipline, affine multiparty session types (AMPST), ensures cancellation termination of multiple, independently running components and guarantees that communication will not get stuck due to error or abrupt termination. Guided by AMPST, we implemented an automated generation tool (MultiCrusty) of Rust APIs associated with cancellation termination algorithms, by which the Rust compiler autodetects unsafe programs. Our evaluation shows that MultiCrusty provides an efficient mechanism for communication, synchronization and propagation of the notifications of cancellation for arbitrary processes. We have implemented several usecases, including popular application protocols (OAuth, SMTP), and protocols with exception handling patterns (circuit breaker, distributed logging). |
Date of Acceptance: | 1-Mar-2022 |
URI: | http://hdl.handle.net/10044/1/95961 |
Copyright Statement: | This paper is embargoed until publication. Once published it will be available fully open access. |
Sponsor/Funder: | Engineering & Physical Science Research Council (EPSRC) Engineering & Physical Science Research Council (EPSRC) Engineering & Physical Science Research Council (E Engineering & Physical Science Research Council (E Engineering and Physical Sciences Research Council Engineering & Physical Science Research Council (EPSRC) Engineering & Physical Science Research Council (E Engineering & Physical Science Research Council (EPSRC) Engineering and Physical Sciences Research Council Engineering & Physical Science Research Council (E The National Cyber Security Centre (NCSC) |
Funder's Grant Number: | EP/T006544/1 EP/K011715/1 ERI 025567 (EP/K034413/1) PO 20131167 EP/L00058X/1, PO 20131167 EP/N027833/1 PO 20263116 EP/T014709/1 EP/V000462/1 PO 20257975 4214176 / RFA 20601 |
Conference Name: | European Conference on Object-Oriented Programming (ECOOP'22) |
Publication Status: | Accepted |
Start Date: | 2022-06-06 |
Finish Date: | 2022-06-10 |
Conference Place: | Berlin, Germany |
Embargo Date: | publication subject to indefinite embargo |
Appears in Collections: | Computing Faculty of Engineering |
This item is licensed under a Creative Commons License