{"id":13505960,"url":"https://github.com/arlyon/azerust","last_synced_at":"2025-04-30T19:47:47.585Z","repository":{"id":43400204,"uuid":"324042414","full_name":"arlyon/azerust","owner":"arlyon","description":"An experimental World of Warcraft emulator in Rust","archived":false,"fork":false,"pushed_at":"2022-03-05T14:33:09.000Z","size":470,"stargazers_count":32,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T19:23:03.587Z","etag":null,"topics":["emulator","rust","world-of-warcraft","wotlk","wow","wow-server","wow-servers","wow-wotlk","wrath-of-the-lich-king"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arlyon.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-24T02:03:35.000Z","updated_at":"2024-10-14T01:35:30.000Z","dependencies_parsed_at":"2022-08-24T09:10:37.018Z","dependency_job_id":null,"html_url":"https://github.com/arlyon/azerust","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arlyon%2Fazerust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arlyon%2Fazerust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arlyon%2Fazerust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arlyon%2Fazerust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arlyon","download_url":"https://codeload.github.com/arlyon/azerust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251773947,"owners_count":21641709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emulator","rust","world-of-warcraft","wotlk","wow","wow-server","wow-servers","wow-wotlk","wrath-of-the-lich-king"],"created_at":"2024-08-01T01:00:29.121Z","updated_at":"2025-04-30T19:47:47.548Z","avatar_url":"https://github.com/arlyon.png","language":"Rust","funding_links":[],"categories":["Servers"],"sub_categories":[],"readme":"# azerust\n\nAzerust is an experimental WoW server emulator for patch 3.3.5\nwritten in Rust. Currently, it only implements the auth server.\nIt is currently being built to be compatible (read: piggy back\non top of) the TrinityCore database. Note, however, that we use\nmariadb in the docker-compose file. Our goals are:\n\n- fast\n- readable\n- safe\n- concise\n\n\u003e **Note:** For the time being this relies on nightly for the\n\u003e `arbitrary_enum_discriminant` feature, which simplifies\n\u003e serialization / deserialization.\n\n## Getting Started\n\nThis project uses [`cargo-make`](https://github.com/sagiegurari/cargo-make)\nfor scripting / tasks. It also uses the latest nightly compiler\nhowever this is only to speed up compilation.\n\n### Configuration\n\nYou will need to provide some configs. Run the `init` command on\nthe world and auth server to generate configs for them.\n\n### Docker\n\nThe simplest method to kickstart is to just use docker compose.\nTo set up the database, you can use a docker compose file we have\navailable. We need to populate a schema, for which we piggy back\noff the incredible Trinitycore project.\n\n```bash\n\u003e cargo make fetch-db\n\u003e docker compose --profile server up\n```\n\nThe downloaded SQL scripts will be used to set up the databases.\nYou will also need to create a `config-auth-compose.yml` and a\n`confit-world-compose.yml` file which are used by docker-compose.\n\n### Building\n\nWe statically check our queries against the database to ensure\ntype safety across the board. This means we depend on access to\ncertain information from our database. Obviously spinning up a\ndb every time you build is cumbersome, so there are two options:\n\n`.env`\n\n```bash\nDATABASE_URL=mysql://localhost/auth\n# or\nSQLX_OFFLINE=true\n```\n\nSetting `DATABASE_URL` dynamically updates queries as we go, while\nthe `SQLX_OFFLINE` option uses the data in `sqlx-data.json`. This\nshould always be up to date. If the queries change at any time, we\nwill need to regenerate this file from the live database. To do\nthis, use the make command:\n\n```bash\ncargo make prepare\n```\n\nThe next part is easy. Provide the `--release` flag if you want to\nmake it go fast.\n\n```bash\ncargo make auth\n# or\ncargo run --bin azerust-auth --release\n```\n\n### Logging\n\nYou can use the [RUST_LOG env var](https://rust-lang-nursery.github.io/rust-cookbook/development_tools/debugging/config_log.html) to configure log levels.\nFor example, we can enable debug mode for the azerust packages:\n\n```bash\nRUST_LOG=azerust_auth,azerust_world=debug\n```\n\n## Account Creation\n\nTo create a command, you can use the `exec` command to run commands\nagainst the database.\n\n```bash\ncargo make auth exec account create \u003cusername\u003e \u003cpassword\u003e \u003cemail\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farlyon%2Fazerust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farlyon%2Fazerust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farlyon%2Fazerust/lists"}