MC 1.21.11 · Folia-Powered · Rust-Accelerated

Mili

为生电而生的 Folia 高性能服务端核心
Rust 原生加速 · 红石全兼容 · Carpet 协议支持 · 假玩家系统

GPLv3 License
JDK 21 Runtime
Rust Native Engine
50+ Config Modules

为什么选择 Mili?

在 Folia 区域多线程调度模型上构建的增强运行时

Rust 原生加速

通过 JNI 桥接 Rust 原生库,加速实体视锥剔除、光照计算等高频路径。零拷贝 DirectByteBuffer + Rayon 并行,每 tick 仅需 M 次 JNI 调用而非 N×M 次。缺失时自动回退纯 Java。

TOML 配置系统

使用 Rust toml_edit 引擎替代 NightConfig,完整保留注释,支持热重载与递归删除。JSON 批量传输在 JNI 边界高效传递配置数据,读写性能显著提升。

Folia 区域负载均衡

共享线程池 + 优先级队列替代每区域独占线程。无锁滑动窗口统计 tick 耗时,根据实时负载动态分配 CPU 资源,低负载区域自动合并执行,告别"一个区域卡全服"。

红石与生电兼容

从 Leaves 移植的全套红石修复:更新抑制、红石忽略向上更新、即时方块更新器、旧方块移除行为、羊毛漏斗计数器。生电机器安心运行,原版行为一个不少。

Carpet 与协议兼容

50+ 条 Carpet/TIS/AMS 规则映射,TPS/mobcaps/counter HUD 实时同步。Jade、Syncmatica、XaeroMap、REI、BBOR、AppleSkin 等客户端 mod 协议全适配,连上即用。

多存档格式支持

支持原版、Linear 和 b_linear 存档格式。MmapRegionStorage 提供内存映射加速的区域存储,ChunkDeltaCompression 减少网络带宽占用,多种优化可选。

继承链

基于 Hyacinthusweight 补丁系统的多层 Fork 架构

🍝
Minecraft
Vanilla
📦
Paper
Server Framework
🧰
Folia
Region Multithreading
🍝
Mili
Rust + Stability
API
mili-apifolia-apipaper-api

对外暴露的 API 与兼容适配层

Server
mili-serverfolia-serverpaper-server

服务端核心逻辑的补丁与增强实现

Native
mili-rust

Rust JNI 原生优化模块 (toml_edit, serde, jni, rayon)

原生加速架构

Rust + JNI 批量处理,零拷贝传递,多核并行

Java (mili-server)
TomlConfigDataRustBridgeEntityCullerConfigManager
JNI Boundary
DirectByteBuffer
Batch Processing
Zero Copy
Rust (mili-rust)
entity_cull.rsfrustum.rsconfig.rsjni_bridge.rsrayon

实体视锥剔除

6 平面 AABB frustum 测试,Java 侧将实体数据打包进 DirectByteBuffer,Rust 通过 GetDirectBufferAddress 直接读取内存地址。每 tick 仅需 M 次 JNI 调用(M = 观察者数量),而非 N×M 次。

// Java: pack entities into buffer, one JNI call per observer var buf = ByteBuffer.allocateDirect(entities.size() * 32); for (var e : entities) { buf.putFloat(e.getX()); /* ... */ } int[] visible = RustBridge.cullEntities(buf, count, planes);

TOML 配置引擎

Rust toml_edit 替代 NightConfig。加载时将 TOML 解析为扁平化 JSON 传递给 Java,保存时接收 JSON 并写回带注释的 TOML。

pub fn load_config(path: &str) -> Option<String> { let content = fs::read_to_string(path).ok()?; parse_toml_to_json(&content) }

跨平台原生库

自动检测操作系统并从 JAR 中释放对应的原生库:Windows .dll、Linux .so、macOS .dylib。缺失时自动回退纯 Java 实现。

// Extract native lib from JAR at runtime Path dst = tmp.resolve(lib); Files.copy(jarEntry, dst, REPLACE_EXISTING); System.load(dst.toAbsolutePath().toString());

50+ 配置模块

六大类别的可配置选项,覆盖从性能到功能的全面控制

Experiment7 modules

实验性功能

  • CrossRegionHelper(跨区事件队列)
  • GlobalEntitiesCounter(全局实体计数器)
  • RayTrackingEntityTracker
  • RedStoneConfig
  • RegionBalancerConfig
  • EntityDamageSourceTrace
  • CommandConfig
Fixes2 modules

漏洞修复

  • PortalLinkFix
  • UpdateSuppressionCrashFix
Function13+8 modules

功能特性

  • Fakeplayer(假玩家系统)
  • WoolHopperCounter(羊毛漏斗计数器)
  • ReplayAPI(ReplayMod 摄影师)
  • RedstoneStats(红石统计)
  • PerformanceMonitor
  • StructureProjection
  • + 8 Protocol modules
Optimizations13 modules

性能优化

  • AsyncPathfinding(异步寻路)
  • ChunkDeltaCompression
  • DynamicViewDistance(动态视距)
  • EntityDirtyTracking
  • MmapRegionStorage
  • RedstoneDirtyTracking
  • VillagerOptimizer
Misc4 modules

杂项

  • AutoUpdate
  • BStats
  • DisableCheck
  • ItemEntity
TOML3 files

配置文件

  • mili_config.toml
  • mili_carpet_config.toml
  • luminol_config.toml

开始使用

从源码构建或直接下载预编译版本

1

克隆仓库

# Clone and enter directory git clone https://github.com/xucy10/Mili.git cd Mili
2

应用补丁

# Requires JDK 21+, Rust is optional # Windows: git config --global core.longpaths true ./gradlew applyAllPatches --no-configuration-cache --no-build-cache
3

注入 Kotlin 并构建

# Inject Kotlin support (optional) python scripts/inject_kotlin.py # Compile Rust native lib (optional, falls back to Java) ./gradlew :mili-rust:stageRustBinary # Build Paperclip JAR ./gradlew :mili-server:createMojmapPaperclipJar
4

获取构建产物

# Output location mili-server/build/libs/mili-paperclip-1.21.11-R0.1-SNAPSHOT-mojmap.jar
1

从 GitHub Releases 下载

访问 Releases 页面,下载最新的 -mojmap.jar 文件。

2

环境要求

  • JDK 21 或更高版本
  • Minecraft 1.21.11
  • 推荐 4+ 核 CPU 以发挥 Folia 多线程优势
3

启动服务器

java -jar mili-paperclip-1.21.11-R0.1-SNAPSHOT-mojmap.jar --nogui