About this project

FerrumC is a Minecraft server implementation written from scratch in Rust, targeting Minecraft version 1.21.8. It aims to be a high-performance, memory-efficient alternative to vanilla servers, leveraging Rust's multithreading capabilities and a Bevy ECS architecture for lockless concurrency. **Key Features:** - **Performance:** Fully multithreaded, utilizing all available CPU cores instead of a single main thread. - **Memory Efficiency:** Designed to use minimal memory while providing a full-featured server experience. - **World Import:** Can import existing vanilla Minecraft worlds. - **Custom Systems:** Includes custom-made network, NBT, and Anvil encoding systems to minimize I/O lag. - **Fast K/V Database:** Uses a high-speed key-value database for chunk storage. - **Configuration:** Straightforward configuration via a `config.toml` file. - **Compatibility:** Works with vanilla Minecraft clients (version 1.21.8). **Current Status:** The project is in early alpha and not yet production-ready. A fresh rewrite is underway on the `rework/v2-skeleton` branch, which will be merged into `master` soon. The rewrite includes a cleaner core, a flat creative world, area edit commands (`/fill`, `/replace`, `/undo`), a day/night cycle, world saving, and Rust-based plugins. It's intended for creative and minigame servers, not survival or vanilla-accurate gameplay. **Installation:** - **Docker:** Pull from `ghcr.io/ferrumc-rs/ferrumc:<version>` and run with port 25565. - **Native Binaries:** Download from Releases page for your platform. - **From Source:** Clone the repo and run `cargo build --release`. - **GitHub Actions:** Download pre-built artifacts from the Actions tab. **Usage:** - Commands: `setup` (generate config), `import` (import world data), `run` (start server). - Options: `--log` for logging level (trace, debug, info, warn, error). **Development:** Contributions are welcome. The project supports profiling with Tracy via the `tracy` feature. Join the Discord for help and discussion. **FAQ Highlights:** - Differs from Valence/Minestom (frameworks) by being a full server replacement. - Differs from Paper/Spigot by writing everything from scratch. - Differs from Pumpkin by prioritizing performance over vanilla parity. - Plugins will be written in Rust via FFI; Java plugins/mods are not supported. - Terrain generation is planned but may not be exactly vanilla. **License:** MIT License.