Ferrite: A Judgmental Embedding of Session Types in Rust
release_2joa3wc7e5aqlcwjckbanmgzpq
by
Ruofei Chen, Stephanie Balzer
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) |
2009.13619v4
access all versions, variants, and formats of this works (eg, pre-prints)