Session-typed concurrent and distributed programming for .NET
Fluent Session Programming in C# (PLACES 2020) [Paper] - Shunsuke Kimura, Keigo Imai
We propose SessionC#, a lightweight session typed library for safe concurrent/distributed programming.
The key features are (1) the improved fluent interface which enables writing communication in chained method calls, by exploiting C#'s out
variables, and (2) amalgamation of session delegation with async
/await
, which materialises session cancellation in a limited form, which we call session intervention.
We show the effectiveness of our proposal via a Bitcoin miner application.
The lightweight version, which includes only types, protocol combinators, and the endpoint API is summarized based on the paper, is available in the SessionCSharpLight directory.
Developed using the .NET SDK 8, supports a variety of operating systems, including Windows, macOS, and Linux.
@article{sessioncs,
title={Fluent Session Programming in C#},
volume={314},
ISSN={2075-2180},
url={http://dx.doi.org/10.4204/EPTCS.314.6},
DOI={10.4204/eptcs.314.6},
journal={Electronic Proceedings in Theoretical Computer Science},
publisher={Open Publishing Association},
author={Kimura, Shunsuke and Imai, Keigo},
year={2020},
month=apr, pages={61–75}
}