quakeworld
A rust library for working with quakeworld.
available features
-
protocol
- quakeworld::protocol::message::Message - reading data types from a byte array
- quakeworld::protocol::types - data types
-
network
- quakeworld::network::channel::Channel - keeps track of connection sequences
-
quakeworld::network::connection::client::Client - client implementation that handles packets and provides packets that need to be send to keep up a connection with a server. See here for a minimal client implimentation. Only tested with
mvdsv 0.36-dev
.
-
mvd
- quakeworld::mvd::Mvd - parsing mvd file format
-
state
- quakeworld::state::State - using Message types to create a game state
-
utils
- quakeworld::utils::AsciiConverter - converting byte arrays to printable ascii
- quakeworld::utils::Userinfo - parsing userinfo strings
- quakeworld::utils::trace - functions to print message read traces (see here for an example
-
crc
- quakeworld::crc - checksum functions
-
ascii_strings - when reading strings they will be converted to printable ascii, original bytes are also being kept see here
Features that are enabled by default are protocol, mvd, and util.
Everything is serializable via serde (json,...). Supports wasm as target ('it compiles' cargo build --target wasm32-unknown-unknown
)
Goals
probably in order of being implemented too
- qwd - qwd format parsing
- mvd - creating a mvd from states
Documentation
could be better, aka non existing at the moment