These are Golang solutions to Fly.io's Gossip Glomers distributed systems challenges, based on Maelstrom.
First step is to set up Maelstrom itself. Start with Fly.io's first part - cmd+F "Installing Maelstrom"; there are some Java prereqs you need first.
You also need a copy of Maelstrom to run locally. This repo setup expects it at ./maelstrom. Fly.io expects v0.2.3, which you can get here.
If you like, you can run this from the top level of this directory:
wget https://github.com/jepsen-io/maelstrom/releases/download/v0.2.3/maelstrom.tar.bz2 -O ./maelstrom.tar.bz2
tar -xjf ./maelstrom.tar.bz2 -C ./
rm ./maelstrom.tar.bz2This repo uses Magefile for make-like commands.
> mage
Targets:
build builds Go binary for {name}
ls lists the available challenge:part combos to run.
run:challenge runs the given {challenge}
run:part runs the given {challenge}, {part}.Run a given challenge:
> mage run:challenge echoRun a given part:
> mage run:part broadcast 3aList all runnable challenges / parts (this will grow):
> mage ls
- echo [-]
- unique-ids [-]
- broadcast [3a,3b,3c]