Ferrite: A Judgmental Embedding of Session Types in Rust

09/28/2020
by   Ruofei Chen, et al.
0

This article introduces Ferrite, a shallow embedding of session types in Rust. In contrast to existing session type libraries and embeddings for mainstram languages Ferrite not only supports linear session types but also shared session types. Shared session types allow sharing (aliasing) of channels while preserving session fidelity (preservation) using type modalities for acquiring and releasing sessions. Ferrite adopts a propositions as types approach and encodes typing derivations as Rust functions, with the proof of successful type-checking manifesting as a Rust program. The encoding resides entirely within the safe fragment of Rust and makes use of type-level features to support an arbitrary-length linear resource context and recursive session types.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/12/2021

Polymorphic Context-free Session Types

Context-free session types provide a typing discipline for recursive str...
research
01/15/2021

Manifestly Phased Communication via Shared Session Types

Session types denote message protocols between concurrent processes, all...
research
09/13/2023

EXPRESSing Session Types

To celebrate the 30th edition of EXPRESS and the 20th edition of SOS we ...
research
02/16/2019

Resource-Aware Session Types for Digital Contracts

Programming digital contracts comes with unique challenges, which includ...
research
04/13/2023

A Logical Account of Subtyping for Session Types

We study the notion of subtyping for session types in a logical setting,...
research
04/07/2023

Parameterized Algebraic Protocols

We propose algebraic protocols that enable the definition of protocol te...
research
04/03/2020

Duality of Session Types: The Final Cut

Duality is a central concept in the theory of session types. Since a fla...

Please sign up or login with your details

Forgot password? Click here to reset