Crate drax

Source
Expand description

§Drax

Drax is a library which supports framed packet reading and writing. Drax itself is not an implementation of any protocol but instead a framework to build protocols on top of.

This framework should be able to provide all the tooling necessary for building an entire server and client stack. The framework will attempt to keep most types generic and provide no default implementations other than the low-level t1 layer.

Drax will attempt to provide a low-overhead SDK for building out serialization and deserialization for packets. These packets can be composed by bytes directly to reduce the amount of allocations and copying required. While the bytes are drained from the source they’re used to build out the correlating types.

Drax does not provide any backwards compatibility mechanisms or guarantees. The protocol assumes both the client and server are running the same version of the protocol. Providing backwards compatibility mechanisms often requires a lot of workarounds and creates turbulence in the actual protocol implementation.

Modules§

delegate
Provides packet component implementations for common types.
error
Provides error types for the transport layer.
macros
Exposes simple macros used for deriving packet component implementations.
prelude
Provides re-exports of common types for macros.
transport
Provides all the types and traits necessary for building out a transport layer.