ferrite-session

Crates.ioferrite-session
lib.rsferrite-session
version0.3.0
sourcesrc
created_at2020-11-15 14:34:48.274487
updated_at2022-02-23 21:19:39.02962
descriptionSession Types DSL for Rust
homepagehttps://github.com/maybevoid/ferrite
repositoryhttps://github.com/maybevoid/ferrite
max_upload_size
id312583
size115,395
Soares Chen (soareschen)

documentation

README

Ferrite - Session Types DSL for Rust

Crates.io Documentation Apache licensed Build Status

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.

Build Instructions

cargo build

Running 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:

RUST_LOG=info cargo run --bin hello
RUST_LOG=info cargo run --bin shared

Code Organization

ferrite-session

  • base - Core constructs for Ferrite
  • functional - Functional programming constructs such as type application and natural numbers.
  • protocol - Type definitions for session types
  • session - Term constructors
  • public.rs - Public API exposed by Ferrite

Demo

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.

Commit count: 207

cargo fmt