binsize
Tool to analyze the size of a binary from .elf file
Decision gist · record as of 2026-08-14
Yes, if you regularly analyze compiled binaries and need a lightweight CLI tool for symbol-level size profiling. The low install friction and permissive license make it a low-risk addition. However, be aware that maintenance is dormant and you will need to have `bloaty` and `nm` already available on your system—verify that dependency before committing to it.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires external tools `bloaty` and `nm` to be installed on the system; also requires setting a project root directory via BINSIZE_ROOT_DIR environment variable, settings.json, or CLI argument.
- Low install friction with four lightweight runtime dependencies.
- Maintenance is dormant—last commit was 2023-07-27, though the package was updated on PyPI as recently as 2025-01-27.
License · maintenance · safety
MIT (permissive) — MIT license is permissive and imposes no restrictions on use, modification, or distribution in your own projects.
last release 2025-01-27 (564 days) · last repo commit 2023-07-27 · 1 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 138,108 downloads/mo, #11,344 on PyPI
Alternatives
Verify before relying
pip install binsize
binsize get firmware.elf -d
binsize compare firmware.elf other_firmware.elf
binsize tree firmware.elf- Whether `bloaty` and `nm` are typically pre-installed on target systems or require separate setup steps.
- Performance and accuracy of symbol size analysis on large or complex binaries.
- Whether the dormant maintenance status indicates the tool is stable or at risk of bit-rot with future toolchain changes.
What it is and what it does
Binsize is a command-line tool that parses compiled ELF binaries and optional map files to report which symbols are consuming the most space. It wraps external analysis tools (bloaty and nm) and provides a CLI interface with subcommands for inspecting, comparing, and visualizing symbol sizes in a hierarchical tree view. The tool stores its configuration—including the project root directory—in a platform-specific settings file managed by platformdirs.
You interact with it primarily through shell commands like `binsize get`, `binsize compare`, and `binsize tree`, each with their own options. It can output results to the terminal or to a file, and allows you to set the project root directory via environment variable, CLI flag, or a Python function call if you're embedding it in a script.
Use it for
- Identify which symbols are bloating a firmware binary and prioritize optimization efforts.
- Compare symbol sizes across two binary builds to detect regressions or improvements.
- Visualize the hierarchical breakdown of code and data sizes in a compiled ELF file.
- Automate binary size analysis in a build pipeline by setting root directory via environment variable.
- Debug unexpected size growth in a compiled artifact by drilling into symbol-level details.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you regularly analyze compiled binaries and need a lightweight CLI tool for symbol-level size profiling.
The low install friction and permissive license make it a low-risk addition. However, be aware that maintenance is dormant and you will need to have `bloaty` and `nm` already available on your system—verify that dependency before committing to it.
Install
binsize on PyPI
Before you install
Low install friction with four lightweight runtime dependencies. Maintenance is dormant—last commit was 2023-07-27, though the package was updated on PyPI as recently as 2025-01-27. No active development signal, but no known issues either.
Requires external tools `bloaty` and `nm` to be installed on the system; also requires setting a project root directory via BINSIZE_ROOT_DIR environment variable, settings.json, or CLI argument.
License in practice
MIT license is permissive and imposes no restrictions on use, modification, or distribution in your own projects.
Quickstart
pip install binsize
binsize get firmware.elf -d
binsize compare firmware.elf other_firmware.elf
binsize tree firmware.elf
Verify before relying
- Whether `bloaty` and `nm` are typically pre-installed on target systems or require separate setup steps.
- Performance and accuracy of symbol size analysis on large or complex binaries.
- Whether the dormant maintenance status indicates the tool is stable or at risk of bit-rot with future toolchain changes.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4.0,>=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesclicktyping-extensionstermcolorplatformdirs |
| Maintenance | Dormant 564 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 138,108 / month, #11,344 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: binsize-0.1.4-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “binary size analysis”
- binsizeAnalyzes symbol sizes in compiled binaries by parsing ELF files and…
- esp-idf-sizeAnalyzes statically allocated RAM and binary size of ESP-IDF firmware…
- membrowseAnalyzes binary size and memory footprint of embedded firmware by…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also mapfile_parser · membrowse · pyelftools · lief · ropper · smda · malduck · cle · esp-coredump · ROPGadget