{"id":50878316,"url":"https://github.com/AfyerDev/AfyBroker","last_synced_at":"2026-07-03T02:01:08.938Z","repository":{"id":167443938,"uuid":"519691377","full_name":"AfyerDev/AfyBroker","owner":"AfyerDev","description":"High-performance remoting framework of Minecraft Servers, based on sofabolt","archived":false,"fork":false,"pushed_at":"2026-06-12T07:17:33.000Z","size":829,"stargazers_count":61,"open_issues_count":0,"forks_count":22,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-06-12T09:13:36.904Z","etag":null,"topics":["bukkit","bukkit-plugin","java","minecraft","paper","paper-plugin","rpc","rpc-framework","spigot","spigot-plugin","velocity","velocity-plugin"],"latest_commit_sha":null,"homepage":"http://afybroker.nipuru.top","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AfyerDev.png","metadata":{"files":{"readme":"README.en-US.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-07-31T05:50:46.000Z","updated_at":"2026-06-12T07:17:37.000Z","dependencies_parsed_at":"2023-11-25T06:21:29.409Z","dependency_job_id":"d2f3a7b9-093a-4d0b-a4f1-17217c3e7863","html_url":"https://github.com/AfyerDev/AfyBroker","commit_stats":null,"previous_names":["afyerdev/afybroker"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/AfyerDev/AfyBroker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfyerDev%2FAfyBroker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfyerDev%2FAfyBroker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfyerDev%2FAfyBroker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfyerDev%2FAfyBroker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AfyerDev","download_url":"https://codeload.github.com/AfyerDev/AfyBroker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfyerDev%2FAfyBroker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35069183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bukkit","bukkit-plugin","java","minecraft","paper","paper-plugin","rpc","rpc-framework","spigot","spigot-plugin","velocity","velocity-plugin"],"created_at":"2026-06-15T12:00:25.782Z","updated_at":"2026-07-03T02:01:08.929Z","avatar_url":"https://github.com/AfyerDev.png","language":"Java","funding_links":[],"categories":["开发框架"],"sub_categories":["RPC框架"],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003eAfyBroker\u003c/h1\u003e\n    \u003ch5\u003eHigh-performance remoting framework of Minecraft Servers, based on sofabolt\u003c/h5\u003e\n    \u003cspan\u003eEnglish | \u003ca href=\"./README.md\"\u003e中文\u003c/a\u003e\u003c/span\u003e\n\u003c/div\u003e\n\n## 💡What is this\n\n- This is an RPC framework for Minecraft cluster servers.\n- Used to implement message passing and remote procedure calls (RPC) between different Bukkit, BungeeCord, Velocity, etc\n- Aims to simplify cross-server communication development process with low learning curve and easy-to-use methods.\n- Based on high-performance sofabolt framework, using lock-free asynchronous event-driven design, stress tested to\n  handle millions of RPC calls per second.\n- Supports multiple messaging patterns including synchronous, asynchronous, and callback, with request timeout handling\n  and automatic disconnection/reconnection.\n- High-performance serialization framework with near-native performance and nanosecond-level response time.\n- Supports Bungee cluster architecture, specially designed for large servers capable of handling tens of thousands of\n  players.\n- Flexible addition of custom server types to meet various messaging requirements\n\n## ⚡Quick Installation\n\n1. Assuming you have cloned this project, enter the following command to build the project.\n\n```shell\ngradlew build\n```\n\n2. Install the project to your local Maven repository.\n\n```shell\ngradlew publishMavenPublicationToMavenLocal\n```\n\n3. Drag the generated jar file from the `broker-server-bootstrap` module into a folder, create a shell script, enter the\n   following command and save and run.\n\n```shell\njava -jar afybroker-server-bootstrap-LASTVERSION.jar\n```\n\n4. Place the generated jar files from the broker-bukkit and broker-bungee modules into the plugins directory of your\n   Bukkit and Bungee servers respectively, then start the servers.\n\n5. If the broker-server is not on the same device as the Bukkit and Bungee servers, you need to modify the config.yml\n   file in the AfyBroker directory under the plugins directory of Bukkit and Bungee, change the host to the network IP\n   address of the broker-server, and restart the servers.\n\n```yaml\nbroker:\n  # broker server address\n  host: localhost\n  # broker server port\n  port: 11200\n  # client name, should be unique for each client, recommended to keep consistent with the server name in bungee, such as spawn1, lobby1, etc.\n  name: 'bukkit-%unique_id%'\n```\n\n## 📖Development\n\nYou can refer to these demo projects using this framework to quickly get started\n\n- private messaging: https://github.com/Nipuru/MsgDemo\n- teleportation: https://github.com/Nipuru/TpaDemo\n\nFor details on RPC framework, please refer to [sofabolt](https://github.com/sofastack/sofa-bolt/blob/master/README.md)\n\n## 🙏Acknowledgments\n\nSpecial thanks to the following projects and developers for providing valuable inspiration and technical support for\nthis framework:\n\n**Design Inspiration**\n\n- [IoGame](https://github.com/iohao/ioGame) - A lock-free asynchronous, event-driven Java network game framework, the\n  main design inspiration for this project\n\n**Technical Contributors**\n\n- [CarmJos](https://github.com/CarmJos) - Core design ideas for Service functionality\n- [Ling556](https://github.com/Ling556) - Docker environment deployment solution, optimized the project's CI/CD workflow","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAfyerDev%2FAfyBroker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAfyerDev%2FAfyBroker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAfyerDev%2FAfyBroker/lists"}