Crate wow_world_messages
source ·Expand description
§wow_world_messages
Implementation of the network protocol used between World of Warcraft game servers and clients for game versions 1.12.x (Vanilla), 2.4.3 (The Burning Crusade), and 3.3.5 (Wrath of the Lich King). See the WoWDev Login page for details on getting to this message exchange.
§Usage
Remove the expansions you don’t need from the following command:
cargo add wow_world_messages --features 'vanilla tbc wrath sync tokio async-std flate2 chrono'
The library is split into the top level modules:
vanilla
for items valid for version 1.12.x.tbc
for items valid for version 2.4.3.8606.wrath
for items valid for version 3.3.5.12340.shared
for items that are valid for multiple versions. These are also exported through the regular modules, so for example if you are working with vanilla it is only necessary to export items fromvanilla
.
§Features/Serde support
This crate has the following features:
vanilla
, for client version 1.12.x.tbc
, for client version 2.4.3.8606.wrath
, for client version 3.3.5.x.encryption
, for functions that take automatically encrypt/decrypt the header.chrono
, for support for adding aTryFrom
chrono::prelude::TimeZone
toDateTime
.flate2
, for supporting compressed messages.tokio
, fortokio
async support.async-std
forasync-std
async support.
§Design Decisions
Types have been named the ugly CMD_SCREAMING_SNAKE_CASE
way because that’s
what other (mostly C++) emulators call them. This makes it significantly easier
to search through other emulators or other documentation.
§Examples
The wow_messages
repo has a few example applications that showcase the library.
§Auto Generation
This crate is partially auto generated by the wowm
files in the
wow_messages
repository.
§Other Work
vMaNGOS
(C++) andMaNGOS
derivatives in general have a relatively complete list of messages for popular versions, but they are not available as a library.
Re-exports§
pub use traits::Message;
Modules§
- shared
vanilla
ortbc
orwrath
- tbc(
vanilla
ortbc
orwrath
) andtbc
- vanilla(
vanilla
ortbc
orwrath
) andvanilla
- wrath(
vanilla
ortbc
orwrath
) andwrath
Structs§
Enums§
Constants§
- Default port that is connected to whenever a port isn’t specified.