ferrite-session 0.1.0

Session Types DSL for Rust
Documentation

Ferrite - Session Types DSL for Rust

Overview

Ferrite is a DSL for writing session type programs in Rust. This is an ongoing research work by Soares Chen and Stephanie Balzer to implement session types in Rust.

Documentation

A work-in-progress documentation for Ferrite is available as a book.

A draft technical report for Ferrite is currently available at Arxiv.

Auto generated rustdoc for Ferrite is available here.

Build Instructions

The library code requires nightly version of Rust to be compiled. You can use rustup to install Rust nightly as follows:

# Install rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

rustup default nightly

After that, the library can be build with cargo as follows:

cargo build

Runnnig Demo

A number of demo executables are available in the src/bin directory. To run a particular demo, use cargo run with the name of the demo file. For example:

cargo run --bin hello
cargo run --bin shared

Code Organization

Acknowledgement

This material is based upon work supported by the National Science Foundation under Grant No. CCF-1718267. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.