Skip to content
Pular para o conteúdo
Voltar ao Blog
bedrock-rs: Construindo Ferramentas Bedrock em Rust

bedrock-rs: Construindo Ferramentas Bedrock em Rust

Alex Maftei
Alex Maftei
@ice
Atualizado
42 visualizações
TL;DR:bedrock-rs é uma biblioteca Rust modular que simplifica o desenvolvimento do Bedrock em Minecraft. Oferece ferramentas para trabalhar com protocolo Bedrock, addons, níveis e formulários. Perfeita para desenvolvedores que criam servidores personalizados, ferramentas ou frameworks.

"Biblioteca universal para Minecraft Bedrock em Rust"

bedrock-crustaceans/bedrock-rs · github.com
⭐ 162 estrelas💻 Rust📄 Apache-2.0

Java Edition recebe todo o amor da modificação. Forge, Fabric, Quilt, Paper - escolha seu sabor e construa o que quiser. Bedrock Edition? Nem tanto. Se você é um desenvolvedor tentando criar algo personalizado para Bedrock, seja um servidor privado, sistema de addon ou cliente especializado, você está trabalhando com ferramentas limitadas e muito conhecimento de protocolo de baixo nível. É aí que entra o bedrock-rs.

O que bedrock-rs Faz

bedrock-rs é uma biblioteca Rust projetada para abstrair a complexidade do Minecraft Bedrock. Em vez de lutar contra buffers de protocolo brutos e especificações de formato de dados, você obtém um kit de ferramentas modular que lida com as partes difíceis. O projeto se divide em múltiplos crates, cada um focando em um trabalho - e você puxa apenas o que precisa.

A ideia central é sólida. A maioria dos desenvolvedores que trabalham com desenvolvimento Bedrock acaba duplicando o mesmo trabalho de baixo nível: análise de pacotes de protocolo, lidar com metadados de addon, gerenciamento de arquivos de nível. bedrock-rs embrulha essas preocupações em módulos reutilizáveis para que você não esteja reinventando a roda.


Os Crates Principais e O Que Fazem

bedrock-rs divide a funcionalidade em cinco crates principais, cada um com um propósito específico. Entender qual você precisa é metade da batalha.

  • bedrockrs::shared - A camada de fundação. Tipos de dados compartilhados usados em toda a biblioteca. É aqui que os blocos de construção comuns vivem, incluindo suporte para macros de derivação nas quais outros módulos dependem.
  • bedrockrs::form - Se você está trabalhando com o sistema de formulário JSON do Bedrock, isso lida com serialização e desserialização. Bedrock usa formulários para elementos de interface, e este crate abstrai as peculiaridades do formato.
  • bedrockrs::addon - Para desenvolvimento de addon. Fornece estruturas de dados para definir layouts de addon e lida com a serialização que você precisaria para criar ou modificar pacotes de comportamento e pacotes de recursos programaticamente.
  • bedrockrs::proto - O peso pesado. E esta é a implementação completa do protocolo Bedrock, cobrindo operações do lado do servidor e do lado do cliente. Suporte a múltiplas versões de protocolo significa que você pode lidar com diferentes versões do Bedrock sem reescrever completamente seu código.
  • bedrockrs::level - Funciona com o formato de nível do Bedrock usando LevelDB. Se você precisar ler ou modificar dados do mundo, é isso que você usa.

A abordagem modular significa que você não é forçado a importar tudo apenas para trabalhar com addons, por exemplo. Design limpo.


Por Que Você Usaria Isto

Conversa séria: bedrock-rs resolve um problema específico. Você precisa dele se estiver construindo ferramentas de desenvolvedor, servidores personalizados ou frameworks de criação de addon em Rust. Alguns exemplos concretos:

Um desenvolvedor construindo um wrapper de servidor Bedrock em Rust poderia usar o crate proto para lidar com conexões de cliente sem implementar manualmente a negociação de versão de protocolo do Bedrock. Alguém criando uma plataforma de distribuição de addon poderia usar o crate addon para validar pacotes de comportamento programaticamente. Uma ferramenta que converte formatos de mundo entre as edições Java e Bedrock dependeria muito do crate level.

Mas aqui está o bit importante: isso não é um framework de modificação como Fabric ou Forge. Você não está instalando bedrock-rs para adicionar novas mecânicas de jogo a um servidor vanilla. Você o está usando como uma biblioteca quando está escrevendo código Rust que precisa interagir com os formatos de dados ou protocolo do Bedrock. Esse é um caso de uso mais limitado do que pode parecer, e tudo bem assim.


Começando com bedrock-rs

A instalação é simples se você usou Rust antes. Adicione isto ao seu Cargo.toml:

rust
[dependencies]
bedrockrs = { git = "https://github.com/bedrock-crustaceans/bedrock-rs.git", features = ["full"] }

Note que bedrock-rs é puxado diretamente do GitHub em vez de crates.io - o projeto planeja publicar em crates.io eventualmente, mas por enquanto você está na versão git. O sinalizador de recurso "full" inclui todos os crates e funcionalidade opcional, embora você possa customizar isso com base no que você realmente precisa (form, addon, proto, level, etc.). Manter dependências mínimas mantém tempos de compilação razoáveis.

Depois disso, a documentação para cada crate individual orienta você pelas especificidades. O servidor Discord do projeto é o melhor lugar para fazer perguntas ou descobrir para onde a comunidade está empurrando as coisas a seguir.


As Partes Boas e Onde Fica Difícil

bedrock-rs realmente se destaca na parte de arquitetura modular. Ao contrário de bibliotecas monolíticas que o forçam a carregar peso morto, a estrutura de crate permite que você escolha a dedo. Aqui está a coisa: o desempenho é sólido porque é Rust - você está obtendo segurança de memória e velocidade sem overhead de coleta de lixo.

A implementação do protocolo é completa, e o suporte a múltiplas versões é valioso. Se você está implantando contra múltiplas versões do Bedrock, ter isso integrado na biblioteca economiza sérios problemas. E a abordagem programática do crate addon para criar pacotes de comportamento é genuinamente útil se você está construindo ferramentas de geração de código.

Onde as coisas ficam mais complicadas: a documentação é focada em desenvolvedores e assume que você já entende a arquitetura do Bedrock razoavelmente bem. Se você é novo no desenvolvimento Bedrock, você precisará parear isso com artigos da Wiki do Minecraft sobre estruturas de protocolo. A biblioteca é jovem (162 estrelas, ativa mas não massiva), então você não vai encontrar um mar de respostas do Stack Overflow.

Além disso, bedrock-rs é mais de baixo nível do que alguns desenvolvedores esperam. Não abstrai toda a complexidade - apenas a organiza melhor. Você ainda precisa entender estruturas de pacote e formatos de dados. Pense nisso como um passo acima de manipulação bruta de bytes, não um framework que lhe oferece a mão completamente.


Quando Usar bedrock-rs vs. Alternativas

Se você precisa construir ferramentas personalizadas do Bedrock em Rust, bedrock-rs é a biblioteca mais completa disponível. Não há muitos competidores diretos no ecossistema Rust especificamente. Você pode tecnicamente escrever sua própria implementação de protocolo (as pessoas fizeram), mas você está olhando para meses de trabalho de engenharia reversa dos formatos do Bedrock.

Se você está construindo um servidor Java Edition privado ou modpack, isso não se aplica a você. Se você está tentando criar conteúdo de jogo para Bedrock vanilla, você gostaria de olhar para pacotes de comportamento e pacotes de recursos através da cadeia de ferramentas oficial, não bedrock-rs.

O ponto ideal é quando você é um desenvolvedor Rust que precisa interagir programaticamente com o ecossistema Bedrock. Construindo ferramentas, pontes entre plataformas ou implementações de servidor especializadas. Essa é a missão para a qual bedrock-rs foi construído, e o faz bem.

Se você está executando um servidor Bedrock e quer verificar como ele está funcionando, ferramentas como o Verificador de Status do Servidor Minecraft lhe dão visibilidade nas contagens de jogador e desempenho. Se você está explorando o que está disponível na comunidade Bedrock, a Lista de Servidores Minecraft mostra o que existe. Essas são ferramentas voltadas para o jogador. bedrock-rs é para as pessoas construindo a próxima geração dessas ferramentas.


Sobre o autor
Alex Maftei
Alex MafteiRedator-chefe

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Have a Question or Tip about this Guide?Community Q&A

Ask a question or help other players below. Join the discussion and share your Minecraft tips!

Comentários

Nenhum comentário ainda. Seja o primeiro a compartilhar sua opinião!

Utilizamos cookies para melhorar a sua experiência. Ao continuar a usar este site, você concorda com o uso de cookies. Leia nossa Política de Privacidade