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.