Ferrite: A Judgmental Embedding of Session Types in Rust release_2joa3wc7e5aqlcwjckbanmgzpq

by Ruofei Chen, Stephanie Balzer

Released as a article .

2021  

Abstract

This paper introduces Ferrite, a shallow embedding of session types in Rust. In contrast to existing session type libraries and embeddings for mainstream 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. We provide an evaluation of Ferrite using Servo as a practical example, and demonstrate how safe communication can be achieved in the canvas component using Ferrite.
In text/plain format

Archived Files and Locations

application/pdf  512.4 kB
file_m6lqpkl2hrgtzfh7o5esx5v7oa
arxiv.org (repository)
web.archive.org (webarchive)
Read Archived PDF
Preserved and Accessible
Type  article
Stage   submitted
Date   2021-09-26
Version   v4
Language   en ?
arXiv  2009.13619v4
Work Entity
access all versions, variants, and formats of this works (eg, pre-prints)
Catalog Record
Revision: c6399deb-350d-4f1d-9fd1-f39323044316
API URL: JSON