Awesome
wow_messages
World of Warcraft authentication + game server message definitions for Rust.
Auto generated from the wowm
language found in wow_message_parser/wowm
.
The project is split into the subdirectories:
wow_login_messages
: Rust library for the authentication server. On crates.io.wow_message_parser
: The parser, codegen and definitions that creates the libraries. Used to buildwow_login_messages
,wow_world_messages
andwowm_language
.wow_world_messages
: Rust library for the world server for WoW version 1.x.y.wow_world_base
: Rust library that provides the basic types and enums such asClass
,Race
andGender
forwow_world_messages
and others. On crates.io.wow_items
: Rust library that contains an array of allItem
s. Uses theItem
type fromwow_world_base
. On crates.io.wow_spells
: Rust library that contains an array of allSpell
s. Uses theSpell
type fromwow_world_base
. On crates.io.wowm_language
: mdbook of language specification. Hosted atwww.gtker.com/wow_messages
.intermediate_representation.json
: contains a machine readable version of thewowm
files.intermediate_representation_schema.json
: a JSON type def schema for theintermediate_representation.json
.examples
Example servers and clients that will work with 1.12, 2.4.3 and 3.3.5 clients.
Run cargo gen && cargo test
to "compile" all libraries and ensure that there are no issues.
Run cargo overwrite
to overwrite the current regression test files with new output.
The following environment variables can be used with the parser:
WOWM_WIRESHARK
: must point to a validepan/dissectors
folder in a wireshark repo.packet-woww.c
andpacket-wow.c
will then be modified with the auto generated Wireshark messages.WOWM_SQLITE_DB_PATH
:wow_db_sqlite
directory. Writes the types and functions forwow_world_base
extended
.WOWM_PRINT_TEST_ERRORS
: when set errors testing that the application exists with a message will print error messages.WOWM_ONLY_PRINT_NAME_OF_SINGLE_MESSAGE
: when set the reporting output will be the first unimplemented message without a newline character. This is intended for quickly implementing many messages in quick succession.
Additional libraries
wow_messages_python
, message definitions in a Python library.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.