Allay是使用Java编写的Minecraft: Bedrock Edition第三方服务端软件,目标通过精心设计的架构来在保持高性能的同时保持高扩展性。有关更多信息,请查看我们的Q&A
Important
请注意,此项目仍处于非常早期的阶段且还未释放正式版,大量接口可能会在没有预先通知的情况下增加或删除。请不要在生产环境使用Allay。
你可以查看我们的RoadMap来获取开发进度。
如你所见,我们项目的名字叫做Allay,这是Minecraft中的一个生物的名字。
我们希望这个项目能像Allay一样简洁,可靠,高效。
- 跨平台: Allay基于JVM,故可以在大多数能运行JVM的平台上运行。
- 高性能:
- 我们充分了解Nukkit系服务端在高负载环境下存在的问题,Allay在同样的负载环境下于特定方面(eg: 实体物理)的性能比Nukkit高近百倍。
- 除此之外,得益于重新设计的线程模型,Allay能充分利用多核CPU。这意味着你不需要刻意使用高频率的CPU。
- Allay基于最新的Java21,理论上能获得更好的性能
- 易于上手:
- 你可以使用Java/JVM语言编写适用于Allay的插件
- 我们引入了GraalVM和JavaScript支持,这意味着你可以使用JavaScript/TypeScript编写插件并 获得与Java同等的性能以及无缝互操作的能力。
- 高自定义性: Allay提供大量BDS不具备的接口。除此之外,你甚至可以直接控制发包来获得最大的自定义性。
- 安全:
- Allay相较于BDS对客户端发包有更多的校验,理论上不存在BDS存在的许多恶性漏洞。
- Allay默认开启网络加密。另外,Allay内置资源包加密功能,可自动加密发送给客户端的资源包,一定程度上防止你的数据泄漏。
- 大量新功能: 不同于Nukkit系服务端,Allay使用了大量BDS已经引入的新的协议功能,包括但不限于服务端权威物品栏,子区块发包。。。
- 代码质量: 我们非常注重代码质量,并借助大量的单元测试和重构保持项目稳定。
Allay基于Java21,故在运行&构建Allay前你需要安装Java21。 若你有开发脚本插件的需求,我们建议你使用GraalVM以获得最好性能。
直接运行:
gradlew Allay-Server:runShadow
构建:
gradlew Allay-Server:build
Allay支持运行以Java/JVM或JavaScript语言编写的插件,你可以查看示例插件来了解如何开始编写:
Java示例: Allay-ExamplePlugin
JavaScript示例: @Allay-ExamplePlugin-JS
有关更多信息,请访问我们的文档站
欢迎参与!在提交PR之前,请先阅读CONTRIBUTING.md
这个项目的存在得益于以下开发者的参与:
欢迎帮助我们完善单元测试!单元测试有助于这个项目的发展
你的反馈能让这个项目变得更好。若你发现了一个问题/有一个新的想法,欢迎在issues界面提出。
其他内容请加入我们的Discord群组讨论。
版权所有 © 2023-2024 AllayMC,保留所有权利。
若未特别指明,项目内容均采用LGPL-3.0协议开源。
以下文件夹内的内容以MIT协议开源:
- Allay-Data
- Allay-CodeGen