À 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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.