Skip to content

Auto generated messages for the World of Warcraft network protocol

License

Notifications You must be signed in to change notification settings

Victov/wow_messages

 
 

Repository files navigation

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 build wow_login_messages, wow_world_messages and wowm_language.
  • wow_world_messages: UNRELEASED Rust library for the world server for WoW version 1.x.y.
  • wow_world_base: UNRELEASED Rust library that provides the basic types and enums such as Class, Race and Gender for wow_world_messages and others.
  • wow_items: Rust library that contains an array of all Items. Uses the Item type from wow_world_base.
  • wowm_language: mdbook of language specification. Hosted at www.gtker.com/wow_messages.
  • intermediate_representation.json: UNRELEASED contains a machine readable version of the wowm files.
  • examples Example servers and clients that will work with 1.12, 2.4.3 and 3.3.5 clients.

Run cargo run -p wow_message_parser && cargo test to "compile" all libraries and ensure that there are no issues.

The following environment variables can be used with the parser:

  • WOWM_WIRESHARK: must point to a valid packet-woww.c in a wireshark repo. This file will then be modified with the auto generated Wireshark messages.
  • WOWM_SQLITE_DB_PATH: wow_db_sqlite directory. Writes the types and functions for wow_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.
  • WOWM_OVERWRITE_ALL_TESTS: overwrites the current regression test files with new output.

License

Licensed under either of

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.

About

Auto generated messages for the World of Warcraft network protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%