Easy Ephemeral External Exposure for Minecraft
Find a file
2023-04-03 21:42:38 +09:00
client completely refactor codebase 2023-04-03 21:18:45 +09:00
common completely refactor codebase 2023-04-03 21:18:45 +09:00
node feat(node): node.js client 2023-04-03 21:18:58 +09:00
server completely refactor codebase 2023-04-03 21:18:45 +09:00
.envrc first commit 2023-04-02 22:25:24 +09:00
.gitignore first commit 2023-04-02 22:25:24 +09:00
Cargo.lock completely refactor codebase 2023-04-03 21:18:45 +09:00
Cargo.toml completely refactor codebase 2023-04-03 21:18:45 +09:00
flake.lock first commit 2023-04-02 22:25:24 +09:00
flake.nix first commit 2023-04-02 22:25:24 +09:00
LICENSE-APACHE licenses and stuff 2023-04-02 22:48:13 +09:00
LICENSE-MIT licenses and stuff 2023-04-02 22:48:13 +09:00
README.md docs: add readme 2023-04-03 21:42:38 +09:00

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

cargo install --git https://git.skye.vg/me/e4mc e4mc-client

Server

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.