2021
DOI: 10.1007/978-3-030-78142-2_5
|View full text |Cite
|
Sign up to set email alerts
|

Safe Session-Based Asynchronous Coordination in Rust

Abstract: Rust is a popular systems language focused on performance and reliability, with an emphasis on providing "fearless concurrency". Message passing has become a widely-used pattern by Rust developers although the potential for communication errors leaves developing safe and concurrent applications an unsolved challenge. In this ongoing work, we use multiparty session types to provide safety guarantees such as deadlock-freedom by coordinating message-passing processes. In contrast to previous contributions [22,21,… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
3
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
4
2

Relationship

0
6

Authors

Journals

citations
Cited by 9 publications
(3 citation statements)
references
References 24 publications
0
3
0
Order By: Relevance
“…Their approach does not address the issues in Section 1, though, whereas our approach does. Previous attempts to address the issue of "mixed static/dynamic checks" either target a programming language with a stronger type system (Rust) [22,8,23,9], or adopt callback-style APIs in the specific context of event-based programming [35,34]. In contrast, our approach does not rely on (the strength of) the type system of the targeted programming language, and it supports traditional procedural/object-oriented programming.…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…Their approach does not address the issues in Section 1, though, whereas our approach does. Previous attempts to address the issue of "mixed static/dynamic checks" either target a programming language with a stronger type system (Rust) [22,8,23,9], or adopt callback-style APIs in the specific context of event-based programming [35,34]. In contrast, our approach does not rely on (the strength of) the type system of the targeted programming language, and it supports traditional procedural/object-oriented programming.…”
Section: Discussionmentioning
confidence: 99%
“…A premier approach to apply the MPST method in combination with mainstream programming languages is based on API generation (Figure 5); it is used in the majority of MPST tools, including Scribble [16,17], its extensions [32,5,25,22,8,23,9,27,35], StMungo [21], νScr [34], mpstpp [20], and Pompset [6]. The main ideas, first conceived by Deniélou/Hu/Yoshida and pursued in Scribble, follow two insights: (a) local types can be interpreted as deterministic finite automata (DFA) [10,11], where every transition models a send/receive action; (b) DFAs can be encoded as object-oriented application programming interfaces (API) [16,17], where classes and methods model states and transitions.…”
mentioning
confidence: 99%
“…There have been several binary [17,19] and multiparty [6,20] session type implementations for Rust. These implementations exploit Rust's affine type system to guarantee that channels mirror the actions prescribed by a session type.…”
Section: Related Workmentioning
confidence: 99%