Skip to content

awesomesk1ll/casc-browser

Repository files navigation

CASC Browser — Blizzard CDN Explorer

Build Version

Desktop app to browse and download game assets from Blizzard’s CASC CDN (Content Addressable Storage Container). Connect by game and region, explore the file tree, search, preview media (images, 3D models, audio, video), and save files to a folder.

Download

Welcome screen

How it works

  1. Connection — You choose a game (e.g. Warcraft III Reforged, WoW, StarCraft II) and region (U.S., Europe, Korea, China). The app talks to the region’s patch server (patch.battle.net), fetches versions and cdns, then loads build config and CDN config from Blizzard’s CDN hosts. If one host fails (e.g. blocked), it tries the next host automatically.
  2. Tree — The build config describes a VFS (virtual file system). The app loads the root and optional sub-VFS/listfile index, then builds a single directory tree you can browse.
  3. Files — Files are addressed by content keys (EKey). The app resolves keys via archive indexes and encoding manifest, then downloads BLTE-encoded data from the CDN and decodes it on demand for preview or save.

Tech: Tauri 2 (Rust backend, native HTTP), React frontend, Vite. Fetch is done in the backend to avoid CORS; the frontend only sees the file tree and requests file bytes by entry.

Features

  • Multi-game, multi-region — Warcraft III Reforged, World of Warcraft, Heroes of the Storm, StarCraft II, StarCraft Remastered, Diablo III, Diablo II Resurrected, Overwatch 2, Hearthstone, and more; regions: U.S., Europe, Korea, China.
  • File browser — Tree on the left, file list on the right; sort by name/size; navigate with breadcrumbs and “Root”.
  • Search — Filter by name or extension (e.g. *.mdx, *.blp).
  • Download — Choose a folder; download a single file or a whole directory (recursive).
  • Previews — BLP/DDS (images), MDX (3D model with textures), audio, video, text/MDL; other types as download only.
  • Resilience — If the first CDN host fails, the app tries the rest; on connection error, a 3-second countdown then auto-retry.

File browser — connected

Usage

Run the app

npm install
npm run tauri:dev

Connect

  1. On the welcome screen, pick Game and Region in the top-right.
  2. Click Connect. The app will fetch versions, configs, and build the tree (you’ll see “Connecting…” and progress).
  3. When connected, the header shows build name, file count, and size; the main area is the file browser.

Browse and search

  • Expand/collapse folders in the tree; click a folder to see its contents in the list.
  • Use Search and optional filters (e.g. *.mdx, *.blp) to narrow the list.
  • Use Root to jump back to the top of the tree.

Download

  1. Click Change folder and choose a directory. Downloads go there.
  2. Use the download (arrow) button on a file or folder to save it. Folders are downloaded recursively.

Preview

  • Click a file that supports preview (e.g. image, MDX, audio, video). A modal opens with the preview (and for MDX, texture status).
  • Close the modal with the ✕ button or by clicking outside.

3D model preview (MDX)

Disconnect

  • Click Disconnect in the header to drop the connection and return to the welcome screen. Game/region choice is remembered for the next run.

Build

  • Frontend only: npm run build
  • Full app (current OS): npm run tauri:build
  • CI: See .github/workflows/tauri-build.yml for building on Windows, macOS, and Linux (including macOS Intel/ARM). Pushing a version tag (e.g. v0.1.3) triggers the build and publishes a GitHub Release with binaries for all platforms: Windows x64 (.exe), macOS aarch64/x64 (.zip with .app inside), Linux x64 (standalone binary).

macOS: removing quarantine

Apps downloaded outside the App Store are quarantined by Gatekeeper. If macOS blocks the app:

  • First run: Right-click the app → Open, then confirm Open in the dialog.
  • Or in Terminal: remove the quarantine attribute so the app opens normally:
    xattr -cr "/path/to/CASC Browser.app"
    Replace the path with the actual location of the app (e.g. in Applications or your Downloads folder).

Requirements

  • Node.js LTS, npm
  • Rust (for Tauri)
  • For local Tauri build: platform-specific deps (e.g. on Ubuntu: libwebkit2gtk-4.1-dev, librsvg2-dev, patchelf)

License

MIT — see LICENSE. Blizzard game data remains Blizzard’s; this tool only reads public CDN layout and content-addressed blobs.

About

CASC (online) browser/downloader

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors