📌 项目地址Pumpkin-MC/Pumpkin | ⭐ 8,279 颗星 | 🔧 Rust | 📜 未标注

为什么需要一个新的 Minecraft 服务端

Minecraft 服务器社区长期以来依赖 Paper、Spigot 等基于 Java 的实现。Java 在内存占用、垃圾回收和 CPU 密集型运算上的固有限制,使服务器在大量玩家或复杂红石场景下容易卡顿。Pumpkin 团队选择用 Rust 从头构建服务端,目标是利用 Rust 的零开销抽象、无 GC 停顿和线程安全模型,在同样硬件上支撑更多玩家同时在线。

更重要的是,Pumpkin 从一开始就设计为同时支持 Java 版和 Bedrock 版客户端,而不需要 BungeeCord 等额外的协议转换层。

项目当前做到了什么

根据 README 的跟踪列表,Pumpkin 已经完成了不少核心功能:

  • 网络与协议:支持加密、压缩、Java 版协议,Bedrock 版正在开发中。
  • 世界管理:世界加载、保存、光照、区块加载(支持 Vanilla / Linear / Pump 三种模式)、世界边界、计分板等。
  • 玩家系统:皮肤、移动、动画、背包、经验、饥饿、副手、吃东西等。
  • 实体:非生物实体(矿车、丢出的鸡蛋等)、效果、玩家、部分怪物和动物(W.I.P)、Boss(W.I.P)、村民(W.I.P)。
  • 服务器基础:RCON、Query、聊天、权限、翻译;代理端兼容 BungeeCord 和 Velocity。
  • 插件系统:被列为待办(Plugins),目前还没有正式发布。

红色石和实体 AI 是两个最大的未完成模块,分别有单独的 issue 跟踪进度。这意味着如果你的服务器依赖复杂的红石机器或高级生物 AI,Pumpkin 暂时不适合。

如何开始使用

README 明确指出:“See our Quick Start guide to get Pumpkin running.” 官方文档提供了详细的编译和运行步骤。概括来说:

  1. 安装 Rust 工具链(官网 rustup.rs)。
  2. 克隆仓库:
    bash
    git clone https://github.com/Pumpkin-MC/Pumpkin.git
    cd Pumpkin
  3. 编译运行(优化版):
    bash
    cargo build --release
    ./target/release/pumpkin
  4. 首次运行会生成 pumpkin.toml 配置文件,可调整端口、内存、世界路径等。

注意:目前没有提供官方预编译二进制,需要自己编译。Rust 编译速度较慢,第一次可能需要几分钟。

它和 Paper / Spigot 有什么本质区别

维度 Paper (Java) Pumpkin (Rust)
语言 Java Rust
并发模型 多线程受限于 JVM 和 GC 无 GC 停顿,CPU 利用率更高
协议支持 需用 Velocity/Geyser 支持 Bedrock 原生规划双协议支持
插件生态 成熟(Bukkit/Paper API) 未发布,仅留有插件接口
功能完整度 几乎完整 红石和 AI 缺失,仍需大量开发
最低 Minecraft 版本 通常 1.8+ 当前仅跟踪最新版本

Pumpkin 的独特价值在于:它不依赖 JVM,因此可以运行在更轻量的环境(如容器、低端 VPS)中,同时也避免了 Java 版本更新带来的兼容问题。但代价是插件生态几乎为零,且功能缺口明显。

需要注意的事项

  1. 开发状态:README 中加了 IMPORTANT 标注,说项目处于“heavy development”,并且指向 issue #449 列出 1.0.0 之前需要完成的功能。如果你在生产环境使用,请做好频繁更新和功能缺失的心理准备。
  2. 插件系统尚未开放:目前无法像 Paper 那样通过插件扩展功能。官方计划在将来推出插件 API,但没有时间表。
  3. 世界生成:区块生成(Chunk Generation)正在开发中(issue #36),目前可能需要依赖外部世界文件。
  4. 性能测试数据:README 没有给出任何基准测试对比。虽然 Rust 理论性能优异,但实际表现需要你自己在硬件上跑分验证。
  5. 许可证:GPL-3.0,意味着任何衍生产品必须开源。

谁现在应该试试

  • 想从零搭建一个仅供少数朋友联机的小型空岛/生存服务器,不依赖复杂红石和生物 AI。
  • 对 Rust 感兴趣,想研究用系统级语言如何实现 Minecraft 协议和世界引擎。
  • 准备长期关注此项目,提前熟悉配置和架构,等插件系统发布后即可迁移。

如果你已经在维护一个大型 Paper 服务器且无法接受功能缺失,那么 Pumpkin 尚未达到替代标准。

这篇文章对你有帮助吗?

发表回复