/rustegan

A distributed system challenge by fly.io solved with Rust.

Primary LanguageRust

Rustegan

A distributed system challenge by fly.io. The name Rustegan is taken from Jon Gjengset's video of him solving this challenge, the link is here

How to start

Build the binary:

cargo build

Test with Maelstrom

  • Echo
./maelstrom/maelstrom test -w echo --bin ./target/debug/echo --node-count 1 --time-limit 10
  • Unique ID Generation
./maelstrom/maelstrom test -w unique-ids --bin ./target/debug/unique-ids --time-limit 30 --rate 1000 --node-count 3 --availability total --nemesis partition
  • Single-Node Broadcast
./maelstrom/maelstrom test -w broadcast --bin ./target/debug/broadcast --node-count 1 --time-limit 20 --rate 10
  • Multi-Node Broadcast
./maelstrom/maelstrom test -w broadcast --bin ./target/debug/broadcast --node-count 5 --time-limit 20 --rate 10
  • Fault Tolerant Broadcast
./maelstrom/maelstrom test -w broadcast --bin ./target/debug/broadcast --node-count 5 --time-limit 20 --rate 10 --nemesis partition
  • Broadcast Efficiency Part 1
./maelstrom/maelstrom test -w broadcast --bin ./target/debug/broadcast --node-count 25 --time-limit 20 --rate 100 --nemesis partition
  • Broadcast Efficiency Part 2
./maelstrom/maelstrom test -w broadcast --bin ./target/debug/broadcast --node-count 25 --time-limit 20 --rate 100 --latency 100 --topology tree4
  • Grow-only Counter
./maelstrom/maelstrom test -w g-counter --bin ./target/debug/counter --node-count 3 --rate 100 --time-limit 20 --nemesis partition
  • PN Counter
./maelstrom/maelstrom test -w pn-counter --bin ./target/debug/counter --node-count 3 --rate 100 --time-limit 20 --nemesis partition
  • Single-node Kafka
./maelstrom/maelstrom test -w kafka --bin ./target/debug/kafka --node-count 1 --concurrency 2n --time-limit 20 --rate 1000
  • Multi-node Kafka
./maelstrom/maelstrom test -w kafka --bin ./target/debug/multinode-kafka --node-count 2 --concurrency 2n --time-limit 20 --rate 1000
  • Single-node Total Available Transactions
./maelstrom/maelstrom test -w txn-rw-register --bin ./target/debug/txn-rw-register --node-count 1 --time-limit 20 --rate 1000 --concurrency 2n --consistency-models read-uncommitted --availability total
  • Multi-node Totally-available Read Uncommitted Transactions
./maelstrom/maelstrom test -w txn-rw-register --bin ./target/debug/txn-rw-uncommitted --node-count 2 --concurrency 2n --time-limit 20 --rate 1000 --consistency-models read-uncommitted --availability total --nemesis partition
  • Multi-node Totally-available Read Committed Transactions
./maelstrom/maelstrom test -w txn-rw-register --bin ./target/debug/txn-rw-committed --node-count 2 --concurrency 2n --time-limit 20 --rate 1000 --consistency-models read-committed --availability total –-nemesis partition