À propos du projet

FerrumC est une implémentation de serveur Minecraft écrite de zéro en Rust, ciblant la version 1.21.8 de Minecraft. Elle vise à être une alternative haute performance et économe en mémoire aux serveurs vanilla, en exploitant les capacités de multithreading de Rust et une architecture Bevy ECS pour une concurrence sans verrou. **Caractéristiques clés :** - **Performance :** Entièrement multithread, utilisant tous les cœurs CPU disponibles au lieu d'un seul thread principal. - **Efficacité mémoire :** Conçue pour utiliser un minimum de mémoire tout en offrant une expérience serveur complète. - **Importation de mondes :** Peut importer des mondes Minecraft vanilla existants. - **Systèmes personnalisés :** Inclut des systèmes de réseau, NBT et d'encodage Anvil sur mesure pour minimiser la latence d'E/S. - **Base de données K/V rapide :** Utilise une base de données clé-valeur haute vitesse pour le stockage des chunks. - **Configuration :** Configuration simple via un fichier `config.toml`. - **Compatibilité :** Fonctionne avec les clients Minecraft vanilla (version 1.21.8). **Statut actuel :** Le projet est en alpha précoce et pas encore prêt pour la production. Une réécriture complète est en cours sur la branche `rework/v2-skeleton`, qui sera bientôt fusionnée dans `master`. La réécriture inclut un noyau plus propre, un monde créatif plat, des commandes d'édition de zone (`/fill`, `/replace`, `/undo`), un cycle jour/nuit, la sauvegarde du monde et des plugins basés sur Rust. Elle est destinée aux serveurs créatifs et de minijeux, pas au gameplay survie ou fidèle à vanilla. **Installation :** - **Docker :** Tirez depuis `ghcr.io/ferrumc-rs/ferrumc:<version>` et exécutez avec le port 25565. - **Binaires natifs :** Téléchargez depuis la page Releases pour votre plateforme. - **Depuis la source :** Clonez le dépôt et exécutez `cargo build --release`. - **GitHub Actions :** Téléchargez les artefacts pré-construits depuis l'onglet Actions. **Utilisation :** - Commandes : `setup` (générer la configuration), `import` (importer les données du monde), `run` (démarrer le serveur). - Options : `--log` pour le niveau de journalisation (trace, debug, info, warn, error). **Développement :** Les contributions sont les bienvenues. Le projet prend en charge le profilage avec Tracy via la fonctionnalité `tracy`. Rejoignez le Discord pour de l'aide et des discussions. **Points forts de la FAQ :** - Diffère de Valence/Minestom (frameworks) en étant un remplacement complet du serveur. - Diffère de Paper/Spigot en écrivant tout de zéro. - Diffère de Pumpkin en priorisant la performance sur la parité vanilla. - Les plugins seront écrits en Rust via FFI ; les plugins/mods Java ne sont pas pris en charge. - La génération de terrain est prévue mais peut ne pas être exactement vanilla. **Licence :** Licence MIT.