
Oxidizium
用Rust语言重写Minecraft的部分内容
Oxidizium - 将 Ferris 注入你的服务器!🦀
概述
此 Fabric 模组将 Minecraft Java 版中的部分方法替换为原生的 Rust 等价实现。 每个 Rust 函数都经过内部测试工具的验证,确保其在功能上与原版 Minecraft 完全一致。 该模组旨在用于服务端,但也可在客户端使用(会有轻微渲染问题)。
目前,此模组将以下 Java 类替换为 Rust:
- MathHelper
未来计划替换更多类,但初期将主要处理底层类。
兼容性
截至目前,Oxidizium 与大多数模组高度兼容,并与 Lithium 有特殊兼容性。 欢迎提交您自己的 Rust 原生代码的拉取请求!
后端
Oxidizium 默认附带 3 个后端:Panama、Nalim 和 Membrane。后端将包含在 jar 包和模组名称中。 每个后端略有不同,请阅读以下说明:
Project Panama
Project Panama 是 Java 22+ 的一项特性,支持低延迟的原生代码执行。适用于从 1.14.3 到现代 MC 的任何 Minecraft 版本。
使用方法
使用 Project Panama 必须安装 Java 22 或更高版本!
推荐使用以下 JVM 参数,但在 Java 25 及以下版本中 目前 并非必需:
--enable-preview --enable-native-access=ALL-UNNAMED
使用更新的 Java 版本可能比 Java 22 更能提升性能。为了获得最佳性能,建议使用 GraalVM,但请注意 GraalVM 有可能(尽管可能性极小)导致模组失效。如果您希望完全稳妥,请使用 Temurin 等发行版。
Nalim
Nalim 是一个第三方库,能够在执行原生代码时实现接近原生的延迟。对于快速(leaf)调用,其速度大约是 Project Panama 的 3 倍,根据 Nalim 说明文档,在 JDK 19 上比 FFM 之前的 Panama 快约 50 倍。
Nalim 因 Loom 的 JEP 444 使 JVMCI nmethod 入口屏障对每个 GC 都成为强制要求,因此在 Java 21+ 上历史上曾出现问题。
Oxidizium 内置了一个 由 FurryMileon 修补的 Nalim jar 包,它在尾调用之后生成一个"无操作"屏障序列,使 JVMCI 验证通过且不产生任何运行时开销——屏障字节为死代码(放置在 jmp rax / br x9 之后)。
使用方法
运行 Nalim 必须使用以下 JVM 参数:-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
Membrane
Membrane 的工作原理类似 Nalim,但效果可能不如 Nalim(基准测试即将推出)。它是一个 实验性 后端,不建议在生产环境中使用。 与 Nalim 一样,它过去要求 Java 20 及以下版本,但感谢内置的 由 QPCrummer 修补的 Membrane jar 包,它能在使用 Java 21 和 25 的所有 Minecraft 版本中完美运行!
使用方法
运行 Membrane 必须使用与 Nalim 相同的以下 JVM 参数:-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
推荐但暂时非必需的 JVM 参数:-XX:+EnableDynamicAgentLoading
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。