2个版本

0.0.0 2020年9月13日
0.0.0-prototype.12020年9月19日

#8 in #feather

Apache-2.0 OR MIT

14KB
150

Feather

build Discord

用Rust编写的Minecraft服务器实现。

注意:该项目目前不活跃。请考虑为valence做出贡献。

支持的Minecraft版本

Feather支持1.16.5客户端和世界存档。我们目前没有同时支持多个版本的计划,但未来可能会考虑。

目标

Feather项目旨在提供一个快速模块化的Minecraft服务器,并配有一个易于使用的插件API。

我们的中期目标是使Feather可用于中心服务器和迷你游戏服务器。Feather提供的游戏功能有限,对于需要小部分原版功能的这类服务器来说不是问题。另一方面,Feather的模块化和性能适用于这类服务器。因此,我们目前的重点是构建一个丰富的插件API,以实现这些用例。

从长远来看,Feather可以用于更大、更生存类服务器,其性能允许许多玩家在同一世界中同时游戏,所需的资源非常少。

生态系统

Feather生态系统由几个仓库组成

  • libcraft,一组提供Minecraft功能的Rust包。
  • quill,我们正在开发中的插件API。Quill插件用Rust编写并编译为WebAssembly。Feather在沙盒化的WebAssembly VM中运行它们。
  • feather,在libcraftquill之上构建的服务器软件。

性能

与原版性能的比较将是极其误导的,因为Feather实现的功能非常少。但如果你真的需要它们

  • Feather可以处理由插件产生的100万个实体,在CPU开始达到最大值之前。原版服务器会在那之前崩溃。
  • Feather可以处理500个并发玩家连接,每个玩家以随机方向行走。

在Feather实现更多功能后,这些结果将发生变化,所以请带着怀疑的态度接受。

Feather中的内存使用量与加载块的数量成正比,而不是玩家数量。在500玩家测试中,服务器使用约40 MiB的RAM,直到玩家开始分散。在1,000,000实体测试中,未加载任何块时使用400 MiB的RAM。

运行

我们在GitHub Actions上提供Windows、Linux和macOS的预编译二进制文件这里。注意:请不要使用github发布版,它们大部分都已经过时。

要运行Feather

  • 解压下载的存档。
  • 运行二进制文件。
    • 在Linux和macOS上:在服务器目录中运行./feather-server
    • 在Windows上:双击feather-server.exe

服务器将创建一个配置文件(config.toml),您可以修改它。

Feather将默认生成一个世界。如果您想加载原版世界,请将世界存档复制到服务器目录下的“world”名称下(默认)。

警告:Feather世界持久性相对较新,在尝试打开原版Feather世界时可能会出现问题。除非它们已经备份,否则不要让Feather接触您关心的世界。

编译

如果您在另一个平台上,可以自己编译服务器来尝试使用它

git clone https://github.com/feather-rs/feather
cd feather
cargo build --release

从源代码编译需要最新稳定的Rust版本。较旧的Rust版本可能能够编译Feather,但它们不保证能继续工作。

服务器可执行文件将位于target/release

架构

对于贡献者,我们在这里有一个关于Feather架构的正在进行中的解释这里

常见问题解答

  • Feather是否已准备好投入生产?

还不是。还有许多尚未解决的错误和缺失的功能,代码库尚未经过足够的测试,因此不能认为服务器已准备好投入生产。

  • 我如何进行贡献?

查看我们的问题跟踪器,了解需要完成的工作。欢迎加入我们的Discord,并在需要时提问。感谢您对贡献的兴趣!

  • 还有其他方式我可以帮助吗?

是的!我们一直在寻找测试服务器和查找错误的人。如果您发现任何您认为不正确的事情,请请将问题提交到问题跟踪器。

依赖关系

~0.7–1.2MB
~26K SLoC