Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/charconstpointer/glowstone
Minecraft server proxy
https://github.com/charconstpointer/glowstone
downstream-servers glowstone minecraft minecraft-server minecraft-server-proxy minecraftjava multiplex multiplexer mux proxy server tcp
Last synced: about 19 hours ago
JSON representation
Minecraft server proxy
- Host: GitHub
- URL: https://github.com/charconstpointer/glowstone
- Owner: charconstpointer
- License: mit
- Created: 2020-12-29T02:14:35.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-02-01T23:44:06.000Z (almost 4 years ago)
- Last Synced: 2024-06-19T04:17:30.468Z (5 months ago)
- Topics: downstream-servers, glowstone, minecraft, minecraft-server, minecraft-server-proxy, minecraftjava, multiplex, multiplexer, mux, proxy, server, tcp
- Language: Go
- Homepage:
- Size: 104 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# glowstone 🌟
### glowstone allows other people to join your localhost games 🎢
### if you're familiar with services like https://aternos.org/ you know that queues can get ridicolous
### with glowstone you can just host your own server and let other people join it via glowstone proxy/tcp mux
### for now you have to host the proxy yourself, but even smallest vm will suffice which is not true for mc servers## Try it yourself
#### Client, this app should be deployed on the same machine as your minecraft server
```
m := glowstone.NewMux()//Tries to connect with the other mux on port 8000
if err := m.Dial(":8000"); err != nil {
log.Fatal(err.Error())
}//When connection is successfull, we can start receiving packets
if err := m.Recv(); err != nil {
log.Fatal(err.Error())
}
```
#### Server, this usually sits somewhere in the clould or on any other machine exposed to external internet traffic
```
m := glowstone.NewMux()//Listens for other mux to connect,
if err := m.ListenMux(":8000"); err != nil {
log.Fatal(err.Error())
}
//Listens for other players to connect, after that it handles each connection and forwards it to your minecraft server
if err := m.Listen(":9000"); err != nil {
log.Fatal(err.Error())
}
```## Architecture 🏗
![](https://i.imgur.com/8oID1nK.png)