skillfed

mapfile_parser

Map file parser library focusing decompilation projects

mapfile-parser v2.13.0 207.5K downloads/30d#9,549 on PyPI29
License unclear Active released

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-parser

uv

uv add mapfile-parser

poetry

poetry add mapfile-parser

Installing 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

Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyProgramming Language :: Rust

Tags

map file parserbinary symbol extractiondecompilation toolingld map file parsingsymbol table analysisROM decompilationlinker map processing
decompilationbinary-analysisrust-extension

More Software Development packages