#minecraft #parse #api #codec #networking

golden_apple

A Rust library for decoding and sharing Minecraft data types

21 releases (breaking)

0.17.1 Aug 29, 2022
0.16.0 Sep 21, 2021
0.9.0 Jul 24, 2021

#1018 in Encoding

MIT license

210KB
1.5K SLoC

Overview

golden_apple is a library for decoding, encoding, and using common types found in Minecraft: Java Edition.

Goals

  • Provide a generalized format for sharing and using Minecraft's data types
  • Simplify the decoding and encoding of network data

Usage

Proprietary Minecraft types like VarInt, VarLong, and Position are a part of the top level crate. NBT is dealt with in the nbt module. Types that can be fully represented in Rust have encoders/decoders under golden_apple::generalized, in case it isn't striaghtforward to do so.

Status

This crate is unfinished and some features aren't yet present. Here's an overview of what is and isn't done:

  • Standard Java Types
  • String
  • Chat
  • Identifier
  • VarInt
  • VarLong
  • Metadata
  • Slot
  • NBT
  • Position
  • Angle
  • UUID
  • Enums
    Partial Support

Version Support

Crate version Minecraft version Minecraft Protocol ID
0.17 - 0.17.1 1.19.2 762

Dependencies

~5–18MB
~273K SLoC