Introduction

What are we building?

We will build a multithreaded Read Eval Print Loop.

TODO: image of three threads - main, user input, worker - with arrows between them

Why?

The goal is learning how to build an app that can:

  • do multiple tasks concurrently
    • consume user input without blocking
    • parse commands that may have errors without crashing
  • share knowledge between tasks
  • is beginner friendly
    • no async
    • no borrows
    • no locks
    • no mutexes