MCPcopy Index your code
hub / github.com/Tater-Certified/Oxidizium

github.com/Tater-Certified/Oxidizium @1.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.2.0 ↗ · + Follow
750 symbols 1,374 edges 41 files 18 documented · 2% updated 19d ago1.2.0 · 2026-05-22★ 514 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Oxidizium - Inject Ferris into your server! 🦀


Summary

This Fabric mod replaces certain Minecraft Java Edition methods with native rust equivalents. Every rust function is tested with the in-house testing utility to ensure that it is functionally equal to vanilla Minecraft. This mod is intended to be used server-side, but can be used on the client (with minor rendering bugs).

Currently, this mod replaces the following Java classes with Rust: - MathHelper

Many more classes are planned in the future, however mostly low-level classes will be tackled in the beginning.


Compatibility

As of now, Oxidizium is very compatible with the majority of mods, with specific compatibility with Lithium


Backends

Oxidizium comes with 3 backends by default: Panama, Nalim, and Membrane. The backend will be in the jar and mod name. Each backend has its own pros and cons. Read about them below:

Project Panama

Project Panama is a Java 22+ feature that allows for low latency native code execution. This works on any Minecraft version from 1.14.3 to modern MC.

Usage

It requires Java 22 or above.

The following JVM arguments are recommended, but not currently required for Java 24 and below:

--enable-preview --enable-native-access=ALL-UNNAMED

Using a newer Java version is likely to improve performance more than Java 22. I recommend using GraalVM for the best performance, however be warned that it is possible (though very unlikely) that GraalVM could break mods. Use a distribution such as Temurin if you want to be completely safe.

Nalim

Nalim is a 3rd-party library that enables near-native latency when executing native code. It is close to 50x faster than Project Panama. However, Nalim only works on Java 20 and below, meaning only 1.20.4 and below can use Nalim as of right now. Nalim also requires a bit more configuration to get working: You can download the Nalim jar from here.

It requires Java 20 or below.

The following JVM start command structure is recommended:

java -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.site=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.runtime=ALL-UNNAMED \
-javaagent:nalim.jar \
-Djava.library.path=./libraries/oxidizium \
-cp nalim.jar:fabric-server-launch.jar \
net.fabricmc.loader.impl.launch.server.FabricServerLauncher nogui

Feel free to change the RAM amount -Xmx2G and add more JVM arguments.

Membrane

Membrane works similar to Nalim except the installation process is streamlined. Like Nalim, it requires Java 20 or below. You still need to use the arguments from Nalim, but there is no longer a need for a java agent:

java -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code.site=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.runtime=ALL-UNNAMED \
-Djava.library.path=./libraries/oxidizium \
-jar fabric-server-launch.jar \
 nogui

Feel free to change the RAM amount -Xmx2G and add more JVM arguments.

Testing

The Oxidizium-Tester mod is a utility mod that can be loaded with Oxidizium (any backend is fine). It will create a GUI on startup instead of launching the vanilla game. In this GUI, the user can input how many "runs" (trials) to execute. Pressing "Run" will run the desired amount of runs and report back any feedback on the left pane. If there happens to be a serious error in the program, the program will crash and a Rust debug log will be printed in the console.

In the left panel, there will be two kinds of errors: Precision (white) and Logical (red). Precision errors can be disregarded as these will not significantly impact the game in any meaningful way and are typically more precise than their Java counterparts. Logical errors are a major issue and can cause instability and crashes within the game. Report these on GitHub if found!


Downloading

Modrinth is the only distribution site for this mod

GitHub releases can also be used, but Modrinth is recommended to support the developers

The latest releases can be found on our Discord Server or on GitHub Actions


Compiling

Run gradlew compileLocally to compile the mod locally. This will build Oxidizium and Oxidizium-Test in oxidizium/build and testMod/build respectfully. This build script has only been verified to work on Windows x86_64 and Linux x86_64, but should work with macOS x86_64 (Intel).


Running in Dev Environment

NOTE: These are broken as of 1.2.0! To run the Oxidizium mod, use gradlew :oxidizium:runClient or gradlew :oxidizium:runServer

To run the Oxidizium-Test mod, use gradlew :testMod:runClient. This will automatically enable the testing GUI

Extension points exported contracts — how you extend this code

Mth (Interface)
(no doc) [6 implementers]
oxidizium/src/main/java/com/github/tatercertified/oxidizium/math/Mth.java
Backend (Interface)
(no doc) [4 implementers]
oxidizium/src/main/java/com/github/tatercertified/oxidizium/utils/backend/Backend.java

Core symbols most depended-on inside this repo

getInstance
called by 21
oxidizium/src/main/java/com/github/tatercertified/oxidizium/Config.java
abs
called by 18
oxidizium/src/main/java/com/github/tatercertified/oxidizium/math/Mth.java
floor
called by 12
oxidizium/src/main/java/com/github/tatercertified/oxidizium/math/Mth.java
sqrt
called by 9
oxidizium/src/main/java/com/github/tatercertified/oxidizium/math/Mth.java
clamp
called by 7
oxidizium/src/main/java/com/github/tatercertified/oxidizium/math/Mth.java
lerp_double
called by 6
native/src/util/math_helper.rs
checkProperty
called by 5
oxidizium/src/main/java/com/github/tatercertified/oxidizium/Config.java
ceil
called by 5
oxidizium/src/main/java/com/github/tatercertified/oxidizium/math/Mth.java

Shape

Method 617
Function 102
Class 28
Interface 2
Enum 1

Languages

Java86%
Rust14%

Modules by API surface

native/src/util/math_helper.rs101 symbols
nalim/src/main/java/com/github/tatercertified/nalim/rust/OxidiziumLib.java99 symbols
membrane/src/main/java/com/github/tatercertified/membrane/rust/OxidiziumLib.java99 symbols
panama/src/main/java/com/github/tatercertified/panama/MthImpl.java68 symbols
oxidizium/src/main/java/com/github/tatercertified/oxidizium/math/Mth.java68 symbols
nalim/src/main/java/com/github/tatercertified/nalim/MthImpl.java68 symbols
membrane/src/main/java/com/github/tatercertified/membrane/MthImpl.java68 symbols
oxidizium/src/main/java/com/github/tatercertified/oxidizium/mixin/MthMixin.java66 symbols
testMod/src/main/java/com/github/tatercertified/oxidizium_tester/test/TestingGUI.java18 symbols
testMod/src/main/java/com/github/tatercertified/oxidizium_tester/test/NativeTest.java13 symbols
oxidizium/src/main/java/com/github/tatercertified/oxidizium/Config.java13 symbols
oxidizium/src/main/java/com/github/tatercertified/oxidizium/OxidiziumMixinPlugin.java8 symbols

For agents

$ claude mcp add Oxidizium \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact