# e4mc Easy Ephemeral External Exposure for Minecraft The client and server code for e4mc, a ngrok-like tunneling solution for Minecraft: Java Edition. It uses WebSockets as the primary connection method and has a simple, easy-to-implement (for clients) wire protocol. ## Install ### Client ```sh cargo install --git https://git.skye.vg/me/e4mc e4mc-client ``` ### Server ```sh cargo install --git https://git.skye.vg/me/e4mc e4mc-server ``` ## Usage ### Client If tunneling a server opened at 25565(default for dedicated servers), just run `e4mc-client` with no arguments. If you wish to tunnel a different port, just supply the `-p` argument. For more options, please consult `--help`'s output. ### Server The server doesn't have TLS termination; You should put it behind a reverse proxy that supports it. The server is exclusively configured by environment variables; they are `WS_BIND_ADDR`, `MC_BIND_ADDR`, and `BASE_DOMAIN`. ## Contributing It'd be really cool if you contributed 🥺 ## License MIT or Apache-2.0 depending on your choice.