{"id":28763039,"url":"https://github.com/wowemulation-dev/warcraft-rs","last_synced_at":"2025-10-03T21:56:36.779Z","repository":{"id":297915441,"uuid":"998163539","full_name":"wowemulation-dev/warcraft-rs","owner":"wowemulation-dev","description":"A collection of Rust crates handling World of Warcraft file formats for WoW 1.x to 5.x.","archived":false,"fork":false,"pushed_at":"2025-06-08T09:22:09.000Z","size":429,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-08T10:23:57.104Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.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":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-08T02:08:59.000Z","updated_at":"2025-06-08T09:22:12.000Z","dependencies_parsed_at":"2025-06-08T10:34:23.415Z","dependency_job_id":null,"html_url":"https://github.com/wowemulation-dev/warcraft-rs","commit_stats":null,"previous_names":["wowemulation-dev/warcraft-rs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wowemulation-dev/warcraft-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Fwarcraft-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Fwarcraft-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Fwarcraft-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Fwarcraft-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wowemulation-dev","download_url":"https://codeload.github.com/wowemulation-dev/warcraft-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wowemulation-dev%2Fwarcraft-rs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260326516,"owners_count":22992368,"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":[],"created_at":"2025-06-17T09:01:19.181Z","updated_at":"2025-10-03T21:56:36.753Z","avatar_url":"https://github.com/wowemulation-dev.png","language":"Rust","funding_links":[],"categories":["Libraries"],"sub_categories":["File Formats"],"readme":"# warcraft-rs\n\nA Rust library and CLI toolset for parsing, manipulating, and creating World of Warcraft file formats.\n\n\u003cdiv align=\"center\"\u003e\n\n[![Discord](https://img.shields.io/discord/1394228766414471219?logo=discord\u0026style=flat-square)](https://discord.gg/Q44pPMvGEd)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE-APACHE)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE-MIT)\n[![CI Status](https://github.com/wowemulation-dev/warcraft-rs/workflows/CI/badge.svg)](https://github.com/wowemulation-dev/warcraft-rs/actions)\n[![codecov](https://img.shields.io/codecov/c/github/wowemulation-dev/warcraft-rs?logo=codecov\u0026style=flat-square\u0026token=BAQ8SOKEST\u0026color=C43AC3)](https://codecov.io/gh/wowemulation-dev/warcraft-rs)\n[![Crates.io Version](https://img.shields.io/crates/v/warcraft-rs)](https://crates.io/crates/warcraft-rs)\n[![docs.rs](https://img.shields.io/docsrs/warcraft-rs)](https://docs.rs/warcraft-rs)\n[![Awesome WoW Rust](https://awesome.re/badge.svg)](https://github.com/arlyon/awesome-wow-rust)\n\n\u003c/div\u003e\n\nPart of the [awesome-wow-rust](https://github.com/arlyon/awesome-wow-rust) community.\n\n## WoW Version Support\n\nSupports World of Warcraft versions **1.12.1 through 5.4.8**:\n\n| Version | Expansion | Status |\n|---------|-----------|--------|\n| 1.12.1 | Vanilla | ✅ Full Support |\n| 2.4.3 | Burning Crusade | ✅ Full Support |\n| 3.3.5a | Wrath of the Lich King | ✅ Full Support |\n| 4.3.4 | Cataclysm | ✅ Full Support |\n| 5.4.8 | Mists of Pandaria | ✅ Full Support |\n\n## Supported File Formats\n\n- **MPQ Archives** - Game data archives with StormLib compatibility and\n  parallel processing\n- **DBC** - Client database files containing game data\n- **BLP Textures** - Compressed texture format with DXT and palette support\n- **M2 Models** - Character, creature, and object 3D models\n- **WMO Objects** - World map objects (buildings, structures)\n- **ADT Terrain** - Terrain chunks with heightmaps and textures\n- **WDT Maps** - World definitions and tile layouts\n- **WDL Maps** - Low-resolution terrain heightmaps\n\n## Quick Start\n\n### Command-Line Usage\n\n```bash\n# Extract files from MPQ archives (uses parallel processing by default)\nwarcraft-rs mpq extract patch.mpq --output ./extracted\n\n# Extract with custom thread count\nwarcraft-rs mpq extract patch.mpq --output ./extracted --threads 4\n\n# Get information about any file format\nwarcraft-rs mpq info archive.mpq\nwarcraft-rs blp info texture.blp\nwarcraft-rs wdt info map.wdt\n\n# Validate archive integrity (parallel by default)\nwarcraft-rs mpq validate archive.mpq --check-checksums\n\n# Convert between formats and versions\nwarcraft-rs blp convert texture.blp texture.png\nwarcraft-rs wmo convert classic.wmo modern.wmo --to cataclysm\n```\n\n### Library Usage\n\n```rust\nuse wow_mpq::Archive;\nuse wow_blp::parser::load_blp;\n\n// Read files from MPQ archives\nlet mut archive = Archive::open(\"patch.mpq\")?;\nlet file_data = archive.read_file(\"Interface\\\\Icons\\\\spell.blp\")?;\n\n// List files in archive (from listfile)\nlet files = archive.list()?;\nfor entry in files {\n    println!(\"{}: {} bytes\", entry.name, entry.size);\n}\n\n// Parse BLP textures\nlet blp_image = load_blp(\"texture.blp\")?;\nprintln!(\"Texture: {}x{}\", blp_image.header.width, blp_image.header.height);\n```\n\nAdd to your `Cargo.toml`:\n\n```toml\n[dependencies]\nwow-mpq = \"0.4.0\"\nwow-blp = \"0.4.0\"\nwow-adt = \"0.4.0\"\n# ... other formats as needed\n```\n\n## Installation\n\n### Binary Releases\n\nPre-built binaries are available for Linux, macOS, and Windows:\n\n```bash\n# Unix/Linux/macOS\ncurl -fsSL https://raw.githubusercontent.com/wowemulation-dev/warcraft-rs/main/install.sh | bash\n\n# Windows PowerShell\nirm https://raw.githubusercontent.com/wowemulation-dev/warcraft-rs/main/install.ps1 | iex\n```\n\n### From crates.io\n\n```bash\n# Install the CLI tool\ncargo install warcraft-rs\n\n# Add specific crates as dependencies\ncargo add wow-mpq wow-blp wow-adt\n```\n\n### Build from source\n\n```bash\ngit clone https://github.com/wowemulation-dev/warcraft-rs\ncd warcraft-rs\ncargo install --path warcraft-rs\n```\n\n## Documentation\n\n- [Getting Started Guide](docs/getting-started/quick-start.md)\n- [Format Documentation](docs/formats/)\n- [API Reference](docs/api/)\n- [Usage Examples](docs/guides/)\n\n## Contributing\n\nSee the [Contributing Guide](CONTRIBUTING.md) for development setup and guidelines.\n\nThanks to all [contributors](CONTRIBUTORS.md).\n\n## License\n\nThis project is dual-licensed under either:\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\nYou may choose to use either license at your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall\nbe dual licensed as above, without any additional terms or conditions.\n\n---\n\n*This project represents the collective knowledge of the WoW modding community\nand is based on reverse engineering efforts. Blizzard Entertainment has not\nofficially documented any formats handled by this project.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwowemulation-dev%2Fwarcraft-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwowemulation-dev%2Fwarcraft-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwowemulation-dev%2Fwarcraft-rs/lists"}