protocraft_framework 0.1.0

A framework for handling minecraft packets
Documentation

Protocraft Framework

This crate provides traits for receiving and sending Minecraft packets, synchronous and asynchronous defaults, strongly typed implementations of protocol handlers, and (in progress) representations of every release protocol version in java Minecraft.

Features

By default, this crate only provides synchronous traits and a packet handling logic and is both no_std and no_alloc.

To use pre-made protocols, use the feature vx_y_z where x is the major version, y is the sub version, and z is the minor version. For example:

features = ["v1_21_10"]

Version features remain no_std and no_alloc.

Feature Description no_std no_alloc
async Adds async traits. true true
std Implements Reader and Writer for std::io::Read and std::io::Write false false
tokio-io Implements AsyncReader and AsyncWriter for tokio::io::Read and tokio::io::Write false false
futures-io Implements AsyncReader and AsyncWriter for futures_io::AsyncRead and futures_io::AsyncWrite false false
defaults Implements a default synchronous StreamProvider false false
tokio-defaults Implements a default asynchronous StreamProvider using tokio false false
futures-defaults Implements a default asynchronous StreamProvider using futures_io false false

Minecraft Versions Not Yet Implemented

  • 1.21.11+
  • 1.16.0 - 1.16.2
  • 1.15.0 - 1.15.1
  • 1.14.0 - 1.14.3
  • 1.13.0
  • pre 1.7 - 1.7.1

The goal is to support all release versions.

Non-Goals

Packets since the Netty re-write are very complex. This library's goal is not to provide an implementation of every packet, but to provide the library user:

[x] Allow the use of packets only in the correct protocol state. [x] Handle errors and parse packets outside of the actual content. [x] Provide the library user context of the type of packet being handled and a bounded stream reader to parse the packet contents themselves.

Examples

See Examples for a basic synchronous and asynchronous server.

License

Licensed under either of

at your option.