https://github.com/AfyerDev/AfyBroker
High-performance remoting framework of Minecraft Servers, based on sofabolt
https://github.com/AfyerDev/AfyBroker
bukkit bukkit-plugin java minecraft paper paper-plugin rpc rpc-framework spigot spigot-plugin velocity velocity-plugin
Last synced: about 4 hours ago
JSON representation
High-performance remoting framework of Minecraft Servers, based on sofabolt
- Host: GitHub
- URL: https://github.com/AfyerDev/AfyBroker
- Owner: AfyerDev
- License: mit
- Created: 2022-07-31T05:50:46.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2026-06-12T07:17:33.000Z (21 days ago)
- Last Synced: 2026-06-12T09:13:36.904Z (21 days ago)
- Topics: bukkit, bukkit-plugin, java, minecraft, paper, paper-plugin, rpc, rpc-framework, spigot, spigot-plugin, velocity, velocity-plugin
- Language: Java
- Homepage: http://afybroker.nipuru.top
- Size: 810 KB
- Stars: 61
- Watchers: 2
- Forks: 22
- Open Issues: 0
-
Metadata Files:
- Readme: README.en-US.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - AfyBroker
README
## 💡What is this
- This is an RPC framework for Minecraft cluster servers.
- Used to implement message passing and remote procedure calls (RPC) between different Bukkit, BungeeCord, Velocity, etc
- Aims to simplify cross-server communication development process with low learning curve and easy-to-use methods.
- Based on high-performance sofabolt framework, using lock-free asynchronous event-driven design, stress tested to
handle millions of RPC calls per second.
- Supports multiple messaging patterns including synchronous, asynchronous, and callback, with request timeout handling
and automatic disconnection/reconnection.
- High-performance serialization framework with near-native performance and nanosecond-level response time.
- Supports Bungee cluster architecture, specially designed for large servers capable of handling tens of thousands of
players.
- Flexible addition of custom server types to meet various messaging requirements
## ⚡Quick Installation
1. Assuming you have cloned this project, enter the following command to build the project.
```shell
gradlew build
```
2. Install the project to your local Maven repository.
```shell
gradlew publishMavenPublicationToMavenLocal
```
3. Drag the generated jar file from the `broker-server-bootstrap` module into a folder, create a shell script, enter the
following command and save and run.
```shell
java -jar afybroker-server-bootstrap-LASTVERSION.jar
```
4. Place the generated jar files from the broker-bukkit and broker-bungee modules into the plugins directory of your
Bukkit and Bungee servers respectively, then start the servers.
5. If the broker-server is not on the same device as the Bukkit and Bungee servers, you need to modify the config.yml
file in the AfyBroker directory under the plugins directory of Bukkit and Bungee, change the host to the network IP
address of the broker-server, and restart the servers.
```yaml
broker:
# broker server address
host: localhost
# broker server port
port: 11200
# client name, should be unique for each client, recommended to keep consistent with the server name in bungee, such as spawn1, lobby1, etc.
name: 'bukkit-%unique_id%'
```
## 📖Development
You can refer to these demo projects using this framework to quickly get started
- private messaging: https://github.com/Nipuru/MsgDemo
- teleportation: https://github.com/Nipuru/TpaDemo
For details on RPC framework, please refer to [sofabolt](https://github.com/sofastack/sofa-bolt/blob/master/README.md)
## 🙏Acknowledgments
Special thanks to the following projects and developers for providing valuable inspiration and technical support for
this framework:
**Design Inspiration**
- [IoGame](https://github.com/iohao/ioGame) - A lock-free asynchronous, event-driven Java network game framework, the
main design inspiration for this project
**Technical Contributors**
- [CarmJos](https://github.com/CarmJos) - Core design ideas for Service functionality
- [Ling556](https://github.com/Ling556) - Docker environment deployment solution, optimized the project's CI/CD workflow