Skip to content

Commit

Permalink
Update README to include release page and dockerhub
Browse files Browse the repository at this point in the history
  • Loading branch information
DyXel committed Sep 20, 2022
1 parent 49c8379 commit 17992c6
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

# Multirole: A C++ server for EDOPro

Multirole manages client connections to a singular lobby where rooms can be hosted and a list of said rooms fetched by other clients to join. It is in charge of creating, processing and logging duels by interfacing with [EDOPro's core](https://github.com/edo9300/ygopro-core).
Multirole is a cross-platform server software that manages client connections to a singular lobby where rooms can be hosted by a client and a list of said rooms fetched by other clients to join. It is in charge of creating, processing and logging automated Yu-Gi-Oh! duels by interfacing with [EDOPro's core](https://github.com/edo9300/ygopro-core).

This project's original inception was to replace [srvpro](https://github.com/mycard/srvpro) due to how cumbersome it is to work with CoffeScript/JavaScript and its interface for native data structures, while also doubling as a learning exercise about high performance networking and serving as a very small documentation for YGOPro's ecosystem.
Docker containers are provided at [Dockerhub](https://hub.docker.com/r/dyxel/multirole) and x86 Windows binaries are provided on the [release page](https://github.com/DyXel/Multirole/releases). For a quick start, those ought to suffice, for Linux and MacOS it is recommended to manually compile in order to maximize performance and customization needs.

## Features

Expand Down Expand Up @@ -134,6 +134,8 @@ The configuration file must be placed in the same working directory as Multirole

## Remarks

* This project's original inception was to replace [srvpro](https://github.com/mycard/srvpro) due to how cumbersome it is to work with CoffeScript/JavaScript and its interface for native data structures, while also doubling as a learning exercise about high performance networking and serving as a very small documentation for YGOPro's ecosystem.

* Multirole uses the TCP keepalive probing mechanism, so it is strongly recommended to configure the system-wide timers and retries for it to be relatively low in order to avoid too many dead connections preventing Multirole from doing internal memory cleanups.

* Multirole registers a handle to capture the SIGTERM signal to close its acceptors and free repositories locks so that another instance can be launched without having to terminate the current duels ([area-zero.sh](https://github.com/DyXel/Multirole/blob/master/util/area-zero.sh) provides an easy way of "restarting" Multirole with no down time by using this signal handling).
Expand Down

0 comments on commit 17992c6

Please sign in to comment.