Skip to content

fermyon/finicky-whiskers

Repository files navigation

To learn more about "The World's Most Adorable Manual Load Generator", Finicky Whiskers, and the technical details under the covers, you should read the four-part blog post series accompanying the project:

  1. The World's Most Adorable Manual Load Generator
  2. Serving the HTML, CSS, and static assets
  3. The Microservices
  4. Spin, Containers, Nomad, and Infrastructure

Finicky Whiskers is comprised of a handful of microservices.

Prerequisites

You'll need Spin v0.4.1 to run the site locally.

You will also need the following to build and run the components:

$ brew tap kateinoigakukun/wasi-vfs https://github.com/kateinoigakukun/wasi-vfs.git
$ brew install kateinoigakukun/wasi-vfs/wasi-vfs
$ brew install npm
$ brew tap tinygo-org/tools
$ brew install tinygo
$ rustup target add wasm32-wasi

It is expected that Rust will be installed already. Do not use Homebrew to install Rust, it will cause errors.

To Build

This will by default build all microservices per the Makefile in their directories:

spin build

You may also build a particular microservice by navigating into its directory and running make build or from the root of this repo via make build-<microservice> e.g.:

make build-session

To Run

The following command will serve the Finicky Whiskers site locally:

spin up --sqlite @highscore/migration.sql

This will run the game at http://127.0.0.1:3000

To Test

The following command will serve the site and then run the integration test as seen here:

make test-server

Development Notes

For working on the game UI (styles, etc):

Recompiling Assets:

cd site
npm i
npm run styles

To just run the UI locally (without the other services) use Parcel via npm run dev and then view the site at localhost:1234