MCPcopy Index your code
hub / github.com/astei/lazydfu

github.com/astei/lazydfu @v0.1.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.3 ↗ · + Follow
2 symbols 4 edges 1 files 1 documented · 50%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

LazyDFU

LazyDFU is an optimization mod that makes the initialization of DataFixerUpper "lazy" - that is, it will not immediately create the rules required to migrate data from older versions of Minecraft to newer versions until it actually needs to do so. It does not modify DFU and should be safe, but do exercise more than the usual caution.

The premise of LazyDFU is simple: most of the time, you will not need to convert data for every version of the game. As a result, DFU rule compilation occurs later, when the game is already up and running. This means it is possible you may see lag spikes if LazyDFU forces the game to compile migration rules, but once complete there is no performance penalty.

Give me the numbers!

On an i5-8250U laptop:

  • Vanilla: ~58 seconds spent initializing DFU and compiling DFU rules
  • LazyDFU: 498 milliseconds spent initializing DFU

This results in a smooth, responsive game startup.

I want to see to believe it!

Here's a video I recorded.

Comparing it to other mods

Cadmium

LazyDFU is complementary to Cadmium. While Cadmium tackles the root source of the problem (rule optimization being slow), it only partially improves the situation. LazyDFU will still be highly effective by deferring the initial compilation of DFU rules until needed, so the game will start up much more quickly.

Smooth Boot

LazyDFU takes a similar implementation approach to Smooth Boot: both mods do not try to modify DFU. However, LazyDFU is superior to Smooth Boot as it does not compile DFU rules at all, which is the most expensive part of the game startup process.

In comparison, Smooth Boot will instead limit the number of threads that compile DFU rules and run them at a lower priority.

DataBreaker

DataBreaker is fundamentally unsafe. If you load an older world with DataBreaker then it will corrupt that world. There's some safeguards in DataBreaker, but even the author does not recommend using DataBreaker. In comparison, with LazyDFU you may experience a nasty lag spike instead, which is vastly superior to having a completely hosed world. So prefer LazyDFU over DataBreaker :)

Core symbols most depended-on inside this repo

enableDataFixerOptimizations
called by 0
src/main/java/me/steinborn/lazydfu/mixin/SharedConstantsMixin.java

Shape

Class 1
Method 1

Languages

Java100%

Modules by API surface

src/main/java/me/steinborn/lazydfu/mixin/SharedConstantsMixin.java2 symbols

For agents

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

⬇ download graph artifact