All Projects → icza → mpq

icza / mpq

Licence: Apache-2.0 license
Decoder/parser of Blizzard's MPQ archive file format

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to mpq

mpyq
Python library for reading MPQ archives.
Stars: ✭ 86 (+207.14%)
Mutual labels:  blizzard, mpq-archives
rasn1
Ruby ASN.1 library
Stars: ✭ 14 (-50%)
Mutual labels:  parse, decoder
fastproto
FastProto is a binary data processing tool written in Java.
Stars: ✭ 65 (+132.14%)
Mutual labels:  parse
CTF-CryptoTool
CTF-CryptoTool is a tool written in python, for breaking crypto text of CTF challenges. It tries to decode the cipher by bruteforcing it with all known cipher decoding methods easily. Also works for the cipher which does not have a key.
Stars: ✭ 38 (+35.71%)
Mutual labels:  decoder
TIFeedParser
RSS Parser written in Swift
Stars: ✭ 18 (-35.71%)
Mutual labels:  parse
netease-music-cache-decoder
The decoder for netease music to convert cache file to origin mp3.
Stars: ✭ 41 (+46.43%)
Mutual labels:  decoder
section-matter
Like front-matter, but allows multiple sections in a single document.
Stars: ✭ 18 (-35.71%)
Mutual labels:  parse
screp
StarCraft - Brood War replay parser
Stars: ✭ 71 (+153.57%)
Mutual labels:  decoder
lilt
LILT: noun, A characteristic rising and falling of the voice when speaking; a pleasant gentle accent.
Stars: ✭ 18 (-35.71%)
Mutual labels:  parse
logfmt
Package logfmt marshals and unmarshals logfmt messages.
Stars: ✭ 156 (+457.14%)
Mutual labels:  decoder
djburger
Framework for safe and maintainable web-projects.
Stars: ✭ 75 (+167.86%)
Mutual labels:  parse
guessit-rest
REST API for guessit
Stars: ✭ 15 (-46.43%)
Mutual labels:  parse
binstruct
Golang binary decoder for mapping data into the structure
Stars: ✭ 67 (+139.29%)
Mutual labels:  decoder
how-much
💰 iOS price list app using Firebase, Realm & more
Stars: ✭ 22 (-21.43%)
Mutual labels:  parse
uniorg
An accurate Org-mode parser
Stars: ✭ 190 (+578.57%)
Mutual labels:  parse
json struct
json_struct is a single header only C++ library for parsing JSON directly to C++ structs and vice versa
Stars: ✭ 279 (+896.43%)
Mutual labels:  parse
BBob
⚡️Blazing-fast js-bbcode-parser, bbcode js, that transforms and parses to AST with plugin support in pure javascript, no dependencies
Stars: ✭ 133 (+375%)
Mutual labels:  parse
urlpack
Pure JavaScript toolkit for data URLs (MessagePack, Base58 and Base62)
Stars: ✭ 51 (+82.14%)
Mutual labels:  decoder
shape-json
Module used to convert a flat json array into a nested json object with a predefined scheme
Stars: ✭ 31 (+10.71%)
Mutual labels:  parse
PyScholar
A 'supervised' parser for Google Scholar
Stars: ✭ 74 (+164.29%)
Mutual labels:  parse

mpq

Build Status GoDoc Go Report Card codecov

Package mpq is a decoder/parser of Blizzard's MPQ archive file format.

This is not a full MPQ implementation. It is primarily intended to parse StarCraft II replay files (*.SC2Replay), but that is fully supported.

Usage

Usage is simple. Opening an MPQ archive file:

m, err := mpq.NewFromFile("myreplay.SC2Replay")
if err != nil {
	// Handle error
	return
}
defer m.Close()

Getting a named file from the archive:

// Access a file inside the MPQ archive.
// Usually there is a file called "(listfile)" containing the list of other files:
if data, err := m.FileByName("(listfile)"); err == nil {
	fmt.Println("Files inside archive:")
	fmt.Println(string(data))
} else {
	// handle error
}

If you already have the MPQ data in memory:

mpqdata := []byte{} // MPQ data in memory
m, err := mpq.New(bytes.NewReader(mpqdata)))

Information sources

Example projects using this

License

Open-sourced under the Apache License 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].