7 releases
0.3.0 | Feb 23, 2022 |
---|---|
0.2.0 | Jun 23, 2021 |
0.1.4 | Jun 12, 2021 |
0.1.3 | May 14, 2021 |
0.1.0 | Nov 15, 2020 |
#1357 in Rust patterns
115KB
5K
SLoC
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.
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 Ferritefunctional
- Functional programming constructs such as type application and natural numbers.protocol
- Type definitions for session typessession
- Term constructorspublic.rs
- Public API exposed by Ferrite
Demo
src/bin
- Demo executables
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.
Dependencies
~8–19MB
~284K SLoC