mapfile_parser
Map file parser library focusing decompilation projects
What it is and what it does
mapfile_parser is a Rust-backed Python library for parsing linker map files generated by GNU ld, clang lld, and Metrowerks ld. It extracts symbol tables, addresses, and size information from compiled binaries—data essential for reverse-engineering and decompilation workflows. The library ships with multiple CLI utilities (bss_check, jsonify, pj64_syms, objdiff_report, progress, sym_info, symbol_sizes_csv, upload_frogress) that automate common analysis tasks on parsed map data.
The package depends on requests and decomp-settings, and is designed to integrate with decompilation project workflows, particularly those using the decomp.yaml configuration format. It supports modern Python versions (3.8+) via prebuilt wheels across many architectures, reducing installation friction despite its compiled extension.
Use it for:
- Extract symbol tables and addresses from compiled ROM or binary map files for reverse-engineering projects.
- Track decompilation progress by comparing matched functions against .NON_MATCHING markers in map files.
- Generate symbol maps compatible with emulators (e.g., PJ64) from linker output.
- Analyze binary size distribution and symbol metadata via CSV or JSON export.
- Integrate map parsing into automated build pipelines for decompilation projects using decomp.yaml config.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses compiled binary map files (GNU ld, clang lld, Metrowerks ld formats) and provides CLI tools to extract symbol information, progress tracking, and metadata for decompilation projects.
Yes, if you are working on a decompilation or reverse-engineering project that needs to parse linker map files. The active maintenance, broad architecture support, and built-in CLI utilities make it a practical choice. However, verify the license terms first, as they are not clearly documented in the package metadata.
Install
mapfile-parser on PyPI
pip
pip install mapfile-parseruv
uv add mapfile-parserpoetry
poetry add mapfile-parserInstalling mapfile_parser
Before you install
Medium install friction due to compiled Rust bindings, but wheels are available for modern Python versions (3.8+) across common architectures. Active maintenance with recent releases.
License in practice
License status is unclear—no SPDX identifier or raw license text is available in the package metadata. Verify the actual license before use in proprietary or restricted contexts.
Quickstart
pip install mapfile_parser
import mapfile_parser
# Parse a map file and access symbols
map_data = mapfile_parser.parse_file('path/to/map.map')
# Or use CLI: mapfile_parser jsonify input.map output.json
Requires Python 3.8 or later; compiled Rust extension may require build tools on platforms without prebuilt wheels.
Verify before relying
- Exact license terms and whether they permit commercial or proprietary use
- Whether requests and decomp-settings are required at runtime or only for specific CLI utilities
- Performance characteristics and typical map file size limits
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — requests, decomp-settings |
| Maintenance | actively maintained — 47 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 207,475/month — #9,549 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mapfile_parser-2.13.0-cp311-abi3-win_arm64.whl; mapfile_parser-2.13.0-cp314-cp314t-macosx_10_12_x86_64.whl; mapfile_parser-2.13.0-cp314-cp314t-macosx_11_0_arm64.whl; mapfile_parser-2.13.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; mapfile_parser-2.13.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; mapfile_parser-2.13.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; mapfile_parser-2.13.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl; mapfile_parser-2.13.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; mapfile_parser-2.13.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl; mapfile_parser-2.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl; mapfile_parser-2.13.0-cp314-cp314t-musllinux_1_2_armv7l.whl; mapfile_parser-2.13.0-cp314-cp314t-musllinux_1_2_i686.whl; mapfile_parser-2.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl; mapfile_parser-2.13.0-cp314-cp314t-win32.whl; mapfile_parser-2.13.0-cp314-cp314t-win_amd64.whl; mapfile_parser-2.13.0-cp38-abi3-macosx_10_12_x86_64.whl; mapfile_parser-2.13.0-cp38-abi3-macosx_11_0_arm64.whl; mapfile_parser-2.13.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; mapfile_parser-2.13.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; mapfile_parser-2.13.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
binsizeAnalyzes symbol sizes in compiled binaries by…
permissive · top 15,000 on PyPI
moviepilot-rustProvides Rust-accelerated parsing and filtering…
unclear · top 15,000 on PyPI
fastarFastar provides high-performance tar archive…
permissive · top 1,000 on PyPI
ast-serializeParses Python source files and serializes their…
permissive · top 1,000 on PyPI
rust-demanglerConverts mangled Rust symbol names into their…
permissive · top 15,000 on PyPI
openlineage-sqlProvides a Python interface to a Rust-based SQL…
unclear · top 5,000 on PyPI
rumdlA Rust-based Markdown linter and formatter that…
permissive · top 5,000 on PyPI
cargo-lambdacargo-lambda is a Cargo subcommand that…
permissive · top 15,000 on PyPI
itanium-demanglerParses Itanium C++ ABI mangled symbols into an…
permissive · top 15,000 on PyPI
pydemumbleProvides Python bindings to demumble, a tool…
permissive · top 15,000 on PyPI