skillfed

esp-idf-size

Firmware size analysis for ESP-IDF

esp-idf-size v2.3.1 1.3M downloads/30d#4,084 on PyPI15
Permissive license Apache-2.0 Active released

What it is and what it does

esp-idf-size is a firmware analysis tool for Espressif IoT devices that examines statically allocated RAM and binary size in compiled firmware images. It helps developers understand memory usage patterns and optimize their applications to fit within flash constraints—a critical concern in resource-constrained embedded systems. The tool is part of the ESP-IDF SDK but is also available as a standalone PyPI package.

As of version 2.0.0, the package uses a new-generation implementation by default, with improved performance and additional features. It depends on pyyaml for configuration, rich for terminal output formatting, rich_click for CLI handling, and esp-pylib for Espressif-specific utilities. The package supports Python 3.7 through 3.14 and runs on macOS, Windows, and POSIX systems.

Use it for:

  • Analyze compiled firmware binaries to identify which functions and data structures consume the most memory.
  • Verify that firmware size stays within device flash memory limits after code changes or dependency updates.
  • Profile static RAM allocation to optimize memory layout for resource-constrained IoT applications.
  • Generate size reports in multiple formats (including JSON) for integration into CI/CD pipelines.
  • Compare firmware size across different build configurations or compiler optimization levels.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Analyzes statically allocated RAM and binary size of ESP-IDF firmware images for Espressif devices, helping developers optimize firmware to fit within flash memory constraints.

Yes, if you develop with ESP-IDF. The tool is actively maintained, has no known vulnerabilities, and low install friction. It directly addresses a core IoT development problem—firmware size optimization. The recent 2.3.1 release and active maintenance signal reliability. Install it if you need to analyze or optimize Espressif device firmware; skip it if you don't work with ESP-IDF.

Install

esp-idf-size on PyPI

pip

pip install esp-idf-size

uv

uv add esp-idf-size

poetry

poetry add esp-idf-size

Installing esp-idf-size

Before you install

Low install friction with pure Python distribution and minimal dependencies. Actively maintained with a release 1 day old, supporting Python 3.7 through 3.14.

License in practice

Apache-2.0 is permissive; you can use this in commercial and proprietary projects with minimal restriction beyond retaining license notices.

Quickstart

pip install esp-idf-size

from esp_idf_size import analyze

# Analyze a firmware binary
result = analyze('path/to/firmware.elf')

Requires an ESP-IDF-built firmware binary (.elf file) to analyze; the tool itself does not generate binaries.

Verify before relying

  • Whether the package can be used standalone or requires an active ESP-IDF SDK installation.
  • What output formats are produced and how they differ between versions.
  • Whether esp-pylib dependency brings additional system requirements.
  • Specific device models supported beyond the Espressif ecosystem.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.7)
Install friction low — pure-Python wheel
Runtime dependencies 4 — pyyaml, rich, rich_click, esp-pylib
Maintenance actively maintained — 1 days since the last release
Last repo commit
First released
Downloads 1,301,295/month — #4,084 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: esp_idf_size-2.3.1-py3-none-any.whl

Keywords: espressif, embedded, project, size

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Embedded Systems

Tags

ESP-IDF firmware size analysisembedded binary size optimizationfirmware footprint analyzerIoT device memory profilingstatic RAM allocation toolEspressif binary size reportfirmware optimization
embedded-systemsesp-idffirmware-analysis

More Embedded Systems packages