Skip to content

Latest commit

 

History

History
75 lines (45 loc) · 2.17 KB

README.md

File metadata and controls

75 lines (45 loc) · 2.17 KB
 $$$$$$$$\ $$\      $$\  $$$$$$\
 \____$$ | $$$\    $$$ |$$  __$$\
     $$  / $$$$\  $$$$ |$$ /  \__|
    $$  /  $$\$$\$$ $$ |$$ |
   $$  /   $$ \$$$  $$ |$$ |
  $$  /    $$ |\$  /$$ |$$ |  $$\
 $$$$$$$$\ $$ | \_/ $$ |\$$$$$$  |
 \________|\__|     \__| \______/

Nightly Build

ZMC is an asynchronous reverse proxy for Minecraft written in ZIG.

It allows you to host multiple Minecraft servers reachable over different domains via a single IP address.

NOTE ZMC requires the latest ZIG version from the master branch.


Cloning

git clone --recursive https://github.com/KekOnTheWorld/ZMC


Configuration

The file path can be passed as a commandline argument to ZMC: zig build run -- yourconfig.zon

The configuration itself is in the ZON (Zig Object Notation) file format.

An example configuration can be found at config.zon.

address

The address the server will listen on. Recommended is 0.0.0.0 for IPv4 and ::1 for IPv6.

port

The port the server will listen on. Minecraft uses 25565 as its default port.

gateways

An array of gateways. A gateway contains a hostname (the domain this gateway will be accessible from, which should have an A/AAAA record pointing to the server ZMC is running on), an address (the address to your local Minecraft server; probably localhost/127.0.0.1/::1), and a port (the port of your local Minecraft server).


Building

zig build -Doptimize=ReleaseSafe

zig build -Doptimize=ReleaseSmall

zig build -Doptimize=ReleaseFast

The executable will be located in the zig-out directory.


License

ZMC is licensed under the MIT License.


Special Thanks To

  • The ZIG team and foundation for making such an amazing language. Sponsor
  • MasterQ32 for the zig-network library providing async I/O. Sponsor
  • Everyone willing to contribute