Hong Kong style mahjong game engine and web application. It uses a server to handle games which handles most of the game mechanics.
- Core library with the game mechanics, tests, and AIs focused in performance and correctness
- Service that persists and handles games for clients
- Can be communicated via an HTTP API
- It creates a WebSocket per active game, to process the game and communicate with clients
- Scripts to handle different tasks related to the code deployment and tests
- For example running linting, tests, and deploying to Dockerhub
- Web client to play, both for desktop and mobile web
- It uses a drag-n-drop UI to play, and it has translated texts
- Includes E2E tests
- A Rust cli for running simulations
You can find the project's Rust documentation here.
There is a flake.nix file with all the required libraries needed for development, including android, it requires that you have the Nix package manager installed.
Once you have cloned the repository there are a few things to setup:
- Generate the
.env
files where present by copying the templates - Install the dev dependencies:
cd scripts && bash src/main.sh dev_install