Skip to content
You must be logged in to sponsor faiface

Become a sponsor to Michal Štrba

I'm a programmer who likes to read a lot of papers and is trying to bring type-safe concurrent programming from research to practice.

Concurrency is hard! Even without any race conditions, concurrent programs easily suffer from bugs: unexpected messages, forgotten obligations, deadlocks. Concurrent structures - communication protocols - are mostly in the minds of programmers, and informal documentations. Type systems (even if potentially capable of it) are not sufficiently used to make sure concurrent programs are sound.

However, academic literature is full of papers on session types, linear logic, and other topics which, if applied, can make those a thing of the past, including deadlocks. Unfortunately, most results of this decades long research have not made it into practice. But it's understandable.

It's difficult to figure out how to apply them. Think how long it took from Tony Hoare's famous "billion dollar mistake" words to actually seeing languages without null pointers in mainstream. And that's just null pointers.

What I am trying to do is combine my understanding of the research with clever design ideas to create libraries, tools, educational materials, and possibly programming languages to put the theory to real-world use. My first step on this path is my par crate for Rust, implementing session types based on linear logic.

If you feel like this is a goal worth pursuing, consider joining, or sponsoring! It really does help.

1 sponsor has funded faiface’s work.

@faiface

Reaching this goal will help me a lot with stability and stress ❤️

@MarkKremer

Featured work

  1. faiface/par

    ⅋ — session types for Rust

    Rust 116
  2. faiface/pixel

    A hand-crafted 2D game library in Go

  3. faiface/beep

    A little package that brings sound to any Go application. Suitable for playback and audio-processing.

  4. faiface/generics

    A proof-of-concept implementation of my generics proposal for Go

    Go 98

0% towards $600 per month goal

Be the first to sponsor this goal!

Select a tier

$ a month

Choose a custom amount.