Sobre o projeto

FerrumC é uma implementação de servidor Minecraft escrita do zero em Rust, visando a versão 1.21.8 do Minecraft. Seu objetivo é ser uma alternativa de alto desempenho e eficiência de memória aos servidores vanilla, aproveitando os recursos de multithreading do Rust e uma arquitetura Bevy ECS para concorrência sem bloqueios. **Principais Recursos:** - **Desempenho:** Totalmente multithread, utilizando todos os núcleos de CPU disponíveis em vez de um único thread principal. - **Eficiência de Memória:** Projetado para usar memória mínima enquanto oferece uma experiência de servidor completa. - **Importação de Mundos:** Pode importar mundos vanilla existentes do Minecraft. - **Sistemas Personalizados:** Inclui sistemas de rede, NBT e codificação Anvil feitos sob medida para minimizar a latência de I/O. - **Banco de Dados K/V Rápido:** Usa um banco de dados chave-valor de alta velocidade para armazenamento de chunks. - **Configuração:** Configuração direta via arquivo `config.toml`. - **Compatibilidade:** Funciona com clientes vanilla do Minecraft (versão 1.21.8). **Status Atual:** O projeto está em alpha inicial e ainda não está pronto para produção. Uma reescrita completa está em andamento no branch `rework/v2-skeleton`, que será mesclada ao `master` em breve. A reescrita inclui um núcleo mais limpo, um mundo criativo plano, comandos de edição de área (`/fill`, `/replace`, `/undo`), um ciclo dia/noite, salvamento de mundos e plugins baseados em Rust. É destinado a servidores criativos e de minigames, não para jogabilidade de sobrevivência ou fiel ao vanilla. **Instalação:** - **Docker:** Baixe de `ghcr.io/ferrumc-rs/ferrumc:<versão>` e execute com a porta 25565. - **Binários Nativos:** Baixe da página de Releases para sua plataforma. - **A partir do Código Fonte:** Clone o repositório e execute `cargo build --release`. - **GitHub Actions:** Baixe artefatos pré-construídos da aba Actions. **Uso:** - Comandos: `setup` (gerar configuração), `import` (importar dados do mundo), `run` (iniciar servidor). - Opções: `--log` para nível de registro (trace, debug, info, warn, error). **Desenvolvimento:** Contribuições são bem-vindas. O projeto suporta criação de perfil com Tracy via o recurso `tracy`. Junte-se ao Discord para ajuda e discussão. **Destaques do FAQ:** - Difere do Valence/Minestom (frameworks) por ser uma substituição completa do servidor. - Difere do Paper/Spigot por escrever tudo do zero. - Difere do Pumpkin por priorizar desempenho em vez de paridade vanilla. - Os plugins serão escritos em Rust via FFI; plugins/mods Java não são suportados. - A geração de terreno está planejada, mas pode não ser exatamente vanilla. **Licença:** Licença MIT.