A series of distributed systems challenges brought to you by Fly.io.
Implementation of the challenges described in the link above using F#. I had to decide whether or not to allow types with invalid state or to use low level json parsing. For now I chose to allow types with invalid state. Once done I may try the opposite.
This repository contains a Taskfile to automate running the various tasks (you can also use the instructions in the website instead while adopting the paths for the executables).
The following dependencies needs to be installed in order to run the challenges (note the WSL dependency if running on windows).
- Taskfile.
- Dotnet (version 6.x).
- WSL (only if running on Windows - maelstrom does not support running on Windows). If you're using Windows + WSL all dependencies below has to be installed inside the default WSL distribution.
- JDK (I'm running with 11).
- Tar with
bzip2
. wget
.- Gnuplot
Note: Follow the getting started guide for installing any other prerequisites.
- Run
task prepare
to install build dependencies and Maelstrom. - Run
Task --list
to see available tasks, run the one you want to execute.