Ferrox-Rs is a revolutionary Minecraft mod loader that brings the power of Rust to Minecraft modding. We're building the future of Minecraft modifications with:
| 🚀 Performance | 🛡️ Safety | ⚡ Modern |
|---|---|---|
| Blazingly fast mod loading | Memory-safe by design | WebAssembly powered |
| Async operations with Tokio | No null pointer exceptions | Modern Rust toolchain |
| Zero-cost abstractions | Compile-time guarantees | Future-proof architecture |
|
|
📋 Detailed Roadmap (Click to expand)
| Feature | Status | Description |
|---|---|---|
| JNI Bridge | ✅ | Stable communication between Java and Rust |
| Async Runtime (Tokio) | ✅ | Non-blocking operations for game thread |
| WASM Mod Loading | ✅ | Load and instantiate WebAssembly mods |
| Feature | Status | Description |
|---|---|---|
| Event System | ✅ | Register handlers for game events |
| Registry API | ✅ | Register blocks and items from mods |
| World & Entity API | 🚧 | API defined, game integration in progress |
| Interaction API | 📝 | Planned (Inventory, Commands, Chat) |
| Crafting API | 📝 | Planned (Crafting tables, furnaces, etc.) |
| Graphics API (GUI) | 📝 | Planned (Custom menus, HUD) |
| Network API | 📝 | Planned (Custom network packets) |
Legend: ✅ Complete | 🚧 In Progress | 📝 Planned
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Add WASM target
rustup target add wasm32-unknown-unknown |
|
|
| Method | Best For | Difficulty |
|---|---|---|
| 🤖 Automated Scripts | First-time users | ⭐ Easy |
| 📦 Pre-built Release | Quick setup | ⭐⭐ Medium |
| 🔧 Manual Build | Advanced users | ⭐⭐⭐ Hard |
Our interactive scripts handle everything for you:
# Make executable (if needed)
chmod +x run.sh
# Run installer
./run.shFeatures:
|
.\run.batFeatures:
|
📋 What the script does (Click to expand)
- Compiles Ferrox Core - Builds the native library in release mode
- Compiles Example Mod - Builds the WASM example mod
- Detects Minecraft Directory - Finds your
.minecraftfolder - Creates Folders - Sets up
ferrox/binandferrox/mods - Copies Files - Places everything in the right location
- Confirmation - Asks before performing critical operations
For specific Minecraft versions, use our automated installers:
# Specify your MC version
./run.sh
# Follow prompts:
# - Minecraft version (e.g., 1.21.5)
# - .minecraft path (optional) |
.\run.bat
# Follow prompts:
# - Minecraft version
# - Custom path (optional) |
What it does:
- Downloads the bootstrapper JAR for your MC version
- Copies native library to
ferrox/bin/ - Sets up mod directories
- Installs everything automatically
For advanced users who want full control (Click to expand)
# Clone repository
git clone https://github.com/CompileRIder/ferrox-rs.git
cd ferrox-rs
# Build core library
cargo build --release
# Build example mod
cargo build -p example-mod --target wasm32-unknown-unknown --release| Platform | Native Library | Location |
|---|---|---|
| 🐧 Linux | libferrox.so |
target/release/ |
| 🍎 macOS | libferrox.dylib |
target/release/ |
| 🪟 Windows | ferrox.dll |
target\release\ |
WASM Mod: target/wasm32-unknown-unknown/release/example_mod.wasm
# In your .minecraft folder:
.minecraft/
├── mods/
│ └── ferrox-bootstrapper-{version}.jar # From releases
└── ferrox/
├── bin/
│ └── libferrox.so (or .dylib/.dll)
└── mods/
└── example_mod.wasmLinux/macOS:
cp target/release/libferrox.* ~/.minecraft/ferrox/bin/
cp target/wasm32-unknown-unknown/release/*.wasm ~/.minecraft/ferrox/mods/Windows:
copy target\release\ferrox.dll %APPDATA%\.minecraft\ferrox\bin\
copy target\wasm32-unknown-unknown\release\*.wasm %APPDATA%\.minecraft\ferrox\mods\- Start Minecraft with Fabric/Forge
- The bootstrapper will load Ferrox
- Ferrox will load your WASM mods
- Check logs for confirmation
[Ferrox] Loading native library...
[Ferrox] Initializing WASM runtime...
[Ferrox] Loading mods from ferrox/mods/...
[Ferrox] ✅ Loaded: example_mod.wasm
[Ferrox] 🦀 Ferrox-Rs ready!
use ferrox_api::prelude::*;
#[event_handler]
pub fn on_player_join(event: PlayerJoinEvent) {
event.player().send_message("Welcome to Ferrox-Rs! 🦀");
}
#[_start]
pub fn init() {
register_item("my_mod:cool_sword", ItemProperties {
damage: 10,
durability: 500,
});
}graph LR
A[Create Rust Project] --> B[Add ferrox-api]
B --> C[Write Mod Logic]
C --> D[Compile to WASM]
D --> E[Install with Script]
E --> F[Launch Minecraft]
style A fill:#E56F25
style F fill:#00ff00
┌─────────────────────────────────────┐
│ Minecraft (Java) │
│ ┌──────────────────────────────┐ │
│ │ Ferrox Core (Rust) │ │
│ │ ┌────────────────────────┐ │ │
│ │ │ WASM Runtime │ │ │
│ │ │ ┌──────────────────┐ │ │ │
│ │ │ │ Your Mod (WASM) │ │ │ │
│ │ │ └──────────────────┘ │ │ │
│ │ └────────────────────────┘ │ │
│ └──────────────────────────────┘ │
└─────────────────────────────────────┘
We welcome contributions! Here's how you can help:
| 🐛 Report Bugs | ✨ Request Features | 🔧 Submit PRs | 📖 Improve Docs |
|---|---|---|---|
| Open Issue | Discussions | Pull Requests | Wiki |
# Clone the repository
git clone https://github.com/CompileRIder/ferrox-rs.git
cd ferrox-rs
# Add WASM target
rustup target add wasm32-unknown-unknown
# Build the project
cargo build --release
# Build example mod
cargo build -p example-mod --target wasm32-unknown-unknown --release
# Run tests
cargo test
# Check code quality
cargo clippy
cargo fmt --checkThe project also uses Gradle for the Java bootstrapper:
# Unix/Linux/macOS
./gradlew build
# Windows
.\gradlew.bat buildferrox-rs/
├── 🦀 developing/ # Core development (WIP)
├── 🎮 example-mod/ # Example WASM mod
├── 🔌 ferrox-api/ # Mod API for developers
├── 🔧 ferrox-macros/ # Procedural macros
├── 📦 gradle/wrapper/ # Gradle build system
├── 🌐 src/ # Core Rust source
├── 📜 build.gradle # Gradle configuration
├── 🔨 gradlew # Gradle wrapper (Unix)
├── 🔨 gradlew.bat # Gradle wrapper (Windows)
├── 🚀 run.sh # Interactive installer (Unix)
├── 🚀 run.bat # Interactive installer (Windows)
├── 📦 run.sh # Quick installer (Unix)
├── 📦 run.bat # Quick installer (Windows)
└── 📝 README.md # You are here!
| Metric | Ferrox-Rs | Traditional Loaders |
|---|---|---|
| Startup Time | ⚡ ~2s | 🐌 ~8s |
| Memory Usage | 💚 ~50MB | 🟡 ~200MB |
| Mod Loading | 🚀 Async | ⏳ Sync |
| Safety | 🛡️ Memory Safe |
Join our growing community of developers and modders:
This project is licensed under the MIT License - see the LICENSE file for details.
If you like Ferrox-Rs, consider supporting the project:
Built with ❤️ using:
- Rust - The programming language
- Tokio - Async runtime
- Wasmer - WebAssembly runtime
- JNI-RS - Java Native Interface
