Skip to main content

Pure Python CASC file structure reader

Project description


(This product is very unfinished and should not be used for anything other than entertainment/simple exports. Report any exceptions thrown in issues)

A Python3 CASC library and pyqt CASC Viewer app.

This is part of a much larger year-long project, that will hopefully result in a very nice blizzard reverse-engineering toolkit.


Blizzard's proprietary data storage format (used in practically all of their products)


There exists so many instances of CASC viewing libs from generations ago, each with their own benefits / losses, but all in languages such as C or C#. And all depending on the same C++ based CASCLib.

Now there isn't anything wrong with that, but there also isn't anything wrong with a bit of expansion. This is a PURE Python implementation of Casc, implementing a full-featured reader, as well as a sample PyQT5 usage of the library.

How do I use it?

As a library? There is a plethora of undocumented api endpoints and ways to use the library. The main methods are outlined in PyCASC/ at the bottom of the file.

The library is currently undocumented because it is in early alpha, proper documentation will come as the library develops.

As an app? You modify at the very bottom, and change it to the directory of Blizzard game. And then run that file (assuming you have all of the packages in requirements.txt installed, the CASCViewApp's requirements differ from the library).

What's the library do?

  • Open a CASC filesystem (Supports most CASC games)
  • List all files that exist in both the filesystem and the rootfile
  • Read individual files into memory (for exporting or analysis)

What's the app do?

Current features:

  • Explore the file-tree of a CASC filesystem
  • Export individual files one at a time
  • View files as hexdumps
  • View text-files as text files
  • Open files externally, without having to export them.
  • View very basic file/folder information (basically just file size)
  • Folder exports ( export an entire file tree, with folder structure )

Planned features:

  • DBC viewing & exporting as sql/csv ( Blizzard proprietary database format)
  • BLP viewing & exporting ( Blizzard proprietary image format )

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyCASC-0.1.0.tar.gz (19.7 kB view hashes)

Uploaded source

Built Distribution

PyCASC-0.1.0-py3-none-any.whl (22.2 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page