{"id":51081405,"url":"https://github.com/wowemulation-dev/tavern","last_synced_at":"2026-06-23T18:32:36.721Z","repository":{"id":366714690,"uuid":"1277545030","full_name":"wowemulation-dev/tavern","owner":"wowemulation-dev","description":"A Rust replacement for Blizzard Battle.net account services for digital preservation of retired WoW Classic client builds.","archived":false,"fork":false,"pushed_at":"2026-06-23T01:54:07.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-23T03:21:38.000Z","etag":null,"topics":["authentication","blizzard","bnet","digital-preservation","rust","world-of-warcraft","wow"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wowemulation-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"danielsreichenbach"}},"created_at":"2026-06-23T01:45:36.000Z","updated_at":"2026-06-23T01:54:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/wowemulation-dev/tavern","commit_stats":null,"previous_names":["wowemulation-dev/tavern"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/wowemulation-dev/tavern","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Ftavern","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Ftavern/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Ftavern/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Ftavern/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wowemulation-dev","download_url":"https://codeload.github.com/wowemulation-dev/tavern/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Ftavern/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34702913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["authentication","blizzard","bnet","digital-preservation","rust","world-of-warcraft","wow"],"created_at":"2026-06-23T18:32:35.859Z","updated_at":"2026-06-23T18:32:36.707Z","avatar_url":"https://github.com/wowemulation-dev.png","language":null,"funding_links":["https://github.com/sponsors/danielsreichenbach"],"categories":[],"sub_categories":[],"readme":"# The Tavern\n\nA Rust replacement for Blizzard's Battle.net account services, built for the\ndigital preservation of retired World of Warcraft Classic client builds.\n\n\u003cdiv align=\"center\"\u003e\n\n[![Discord](https://img.shields.io/discord/1394228766414471219?logo=discord\u0026style=flat-square)](https://discord.gg/Jj4uWy3DGP)\n[![License](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE)\n![Status](https://img.shields.io/badge/status-early_development-red.svg)\n\n\u003c/div\u003e\n\nThe Tavern lets you run your own account and authentication server so that\nabandoned WoW Classic clients can still log in and play. It targets the Classic\nre-release client lines — Vanilla, The Burning Crusade, Wrath of the Lich King,\nand Cataclysm Classic — up to defined build cutoffs (see [Supported Client\nBuilds](#supported-client-builds)).\n\nThe Tavern is part of the [wowemulation-dev][org] collection of free and\nopen-source World of Warcraft server components. It is independent of, and not\naffiliated with, Blizzard Entertainment.\n\n\u003e **Status:** Early project. This repository currently defines the intended\n\u003e scope and tooling. There is no runnable implementation yet. Functionality\n\u003e described below is planned, not available.\n\n## Supported Client Builds\n\nTavern's preservation target is the set of World of Warcraft Classic client\nbuilds listed below. All builds in each line, up to and including the cutoff,\nare in scope; later builds and other client lines are not.\n\n| Client line           | Recreates                    | Build cutoff |\n| --------------------- | ---------------------------- | ------------ |\n| 1.13.x (2019 to 2021) | Vanilla, 2005 (v1.12)        | 39692        |\n| 1.14.x (2021 to 2023) | Vanilla, 2005 (v1.12)        | 51535        |\n| 2.5.x through 2.5.4   | The Burning Crusade, 2007    | 44833        |\n| 3.4.x through 3.4.4   | Wrath of the Lich King, 2008 | 61581        |\n| 4.4.x through 4.4.2   | Cataclysm, 2010              | 60895        |\n\nBuild numbers are the values reported by the client at its login screen and\ncatalogued at [warcraft.wiki.gg][public-builds].\n\n## What It Preserves\n\nThe Tavern exists to keep the retired client builds listed above playable.\nThese builds, as originally released, have been superseded by Blizzard's\ncurrent live offerings; the Tavern preserves them.\n\nThe Tavern does not target, and is not intended for use with:\n\n- Any build above the cutoffs listed in\n  [Supported Client Builds](#supported-client-builds).\n- Any client version Blizzard currently serves. As of June 2026, that includes\n  Classic Era (1.15.x), the Wrath-based Titan Reforged service (3.80.x), Mists\n  of Pandaria Classic (5.5.x), the Burning Crusade Classic Anniversary Edition\n  (2.5.5), and retail World of Warcraft / Midnight (12.0.x).\n- Live Blizzard services or any environment where Blizzard currently provides\n  authentication.\n\nThe intent is preservation of retired client builds, not circumvention of any\nactive commercial offering.\n\n## What It Provides\n\nThe Tavern reimplements the two main Blizzard services that game clients depend\non:\n\n- **OAuth backend** — Handles authentication and token issuance. Game clients\n  connect to this service to verify their credentials and receive session tokens.\n- **Account management web frontend** — Handles account creation, credentials,\n  and account state. This is the web-facing service that players interact with\n  to manage their accounts.\n- **Game client authentication** — The custom RPC interface that game clients\n  use to log in. This replaces Blizzard's BGS authentication server.\n- **Authentication token issuance** — The tokens game clients need to access\n  realm servers.\n\nOut of scope:\n\n- Game world, realm emulation, and gameplay systems. Those belong to a realm\n  server, not an account service.\n- Any client version Blizzard currently serves, or any build above the\n  supported cutoffs. See [What It Preserves](#what-it-preserves).\n\n## How It Works\n\nBlizzard's game authentication infrastructure consists of two main services:\n\n- An **OAuth backend** (`oauth.battle.net`) that handles authentication and\n  token issuance.\n- An **account management web frontend** (`account.battle.net`) that handles\n  account creation and credentials.\n\nGame clients do not speak OAuth directly — they use a custom RPC protocol to\nauthenticate against the same account database that backs the OAuth backend. The\ndesktop app and web clients use OAuth, with the desktop app also using a token\nexchange to convert game session tokens into desktop platform tokens.\n\nTavern reimplements both services so that retired game clients can authenticate\nand play without connecting to any Blizzard infrastructure.\n\n## For Developers\n\n### Tech Stack\n\n- Language: Rust (stable, edition 2024).\n- Toolchain management: [mise][mise].\n- Linting: `cargo clippy` and the configured markdownlint rules.\n\n### Development\n\nPrerequisites are installed with mise:\n\n```bash\nmise install\n```\n\nOnce a workspace is in place, the standard Cargo commands apply:\n\n```bash\ncargo build\ncargo test\ncargo clippy -- -D warnings\n```\n\n### Protocol Details\n\nFor implementation details, see the documentation:\n\n- [OAuth / OIDC Implementation](docs/oauth-oidc-implementation.md)\n- [Protocol Overview](docs/protocol-overview.md)\n\n## License\n\nThis project is for educational and preservation purposes, and licensed under\nthe terms of the Affero General Public License, version 3.0 or later.\n\n[LICENSE.md](LICENSE.md) contains the full license text along with your rights\nand duties.\n\n[org]: https://github.com/wowemulation-dev\n[mise]: https://mise.jdx.dev/\n[agpl]: https://www.gnu.org/licenses/agpl-3.0.html\n[public-builds]: https://warcraft.wiki.gg/wiki/Public_client_builds\n\n---\n\n**Note**: This project is not affiliated with Blizzard Entertainment. It is an\nindependent implementation based on reverse engineering by the World of Warcraft\nemulation community.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwowemulation-dev%2Ftavern","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwowemulation-dev%2Ftavern","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwowemulation-dev%2Ftavern/lists"}