pyelftools
Library for analyzing ELF files and DWARF debugging information
Decision gist · record as of 2026-08-14
Yes. pyelftools is stable (production/stable status), actively maintained, has no dependencies, and is permissively licensed under public domain. It is the standard choice for Python-based ELF and DWARF parsing. Install it if you need to read or analyze ELF binaries or debug information from Python.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; input must be a valid ELF binary file.
- Low friction: pure Python with no runtime dependencies, distributed as a wheel.
- Active maintenance with a recent release 77 days ago and 2270 repository stars.
License · maintenance · safety
Public domain (permissive) — Public domain license permits unrestricted use, modification, and distribution with no attribution or copyleft obligations.
last release 2026-05-29 (77 days) · last repo commit 2026-07-30 · 2,270 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 16,037,769 downloads/mo, #1,165 on PyPI
Alternatives
Verify before relying
pip install pyelftools
import pyelftools
# See user's guide for detailed usage examples- Specific DWARF versions or ELF variants supported beyond the general claim
- Performance characteristics or file size limits for large binaries
- Whether the library can be used without installation by adjusting PYTHONPATH as described
What it is and what it does
pyelftools is a pure-Python library for reading and analyzing ELF (Executable and Linkable Format) binaries and their embedded DWARF debugging metadata. It requires only Python 3 and has no external dependencies, making it straightforward to integrate into tools that need to inspect compiled binaries, extract debug symbols, or analyze executable structure.
The library is used in debuggers, disassemblers, binary analysis tools, and compiler infrastructure. It handles the low-level parsing of ELF headers, sections, segments, and symbol tables, as well as DWARF format data. Since it is pure Python, it can be embedded directly in projects without system library requirements, though it is also available on PyPI for standard installation.
Use it for
- Extract debug symbols and line number information from compiled binaries for debugger integration
- Analyze ELF binary structure to understand sections, segments, and symbol tables in reverse-engineering tools
- Parse DWARF metadata to recover source-level information from stripped or optimized executables
- Build binary analysis and instrumentation tools that need to read ELF metadata without external C libraries
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
pyelftools is stable (production/stable status), actively maintained, has no dependencies, and is permissively licensed under public domain. It is the standard choice for Python-based ELF and DWARF parsing. Install it if you need to read or analyze ELF binaries or debug information from Python.
Install
pyelftools on PyPI
Before you install
Low friction: pure Python with no runtime dependencies, distributed as a wheel. Active maintenance with a recent release 77 days ago and 2270 repository stars.
Requires Python 3.10 or later; input must be a valid ELF binary file.
License in practice
Public domain license permits unrestricted use, modification, and distribution with no attribution or copyleft obligations.
Quickstart
pip install pyelftools
import pyelftools
# See user's guide for detailed usage examples
Verify before relying
- Specific DWARF versions or ELF variants supported beyond the general claim
- Performance characteristics or file size limits for large binaries
- Whether the library can be used without installation by adjusting PYTHONPATH as described
Package facts
| License | Public domain permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 77 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 16,037,769 / month, #1,165 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: Public DomainOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: File FormatsTopic :: Software Development :: CompilersTopic :: Software Development :: DebuggersTopic :: Software Development :: Disassemblers |
Evidence: pyelftools-0.33-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 › “ELF file parser”
- pyelftoolspyelftools parses and analyzes ELF binary files and DWARF debugging…
- liefLIEF parses, modifies, and abstracts binary executable formats (ELF,…
- cleCLE loads binary executables and shared libraries, resolves their…
Give your agent the search over MCP, or paste the wish link into any chat.
More Compilers packages
pyparsing provides a library for building text parsers directly in Python code using composable grammar classes, handling quoted strings, whitespace variation, and embedded comments without regex or lex/yacc.
Install it if you need to parse text or define grammars programmatically.
Cython is a source code translator that compiles Python code to C, enabling optional static typing and direct C/C++ interoperability to generate efficient native extensions.
Install it if you need to optimize Python performance, wrap C/C++ libraries, or build fast native extensions.
Annotates Python abstract syntax trees with the positions of tokens and source code text, enabling tools to map AST nodes back to their originating code for refactoring, analysis, and transformation.
Numba is a just-in-time compiler that accelerates numerically-focused Python code by compiling it to machine code via LLVM, with support for NumPy functions, loop parallelization, and GPU code generation.
Python bindings to the tree-sitter parsing library, enabling incremental parsing and syntax tree analysis for source code.
llvmlite provides a lightweight Python binding to LLVM's IR builder, optimizer, and JIT compiler APIs, enabling you to write JIT compilers and code generators without needing the full LLVM C++ API surface.
See also binsize · pwntools · lief · patchelf · guppy3 · membrowse · cle · leb128 · pydevd-pycharm · depyf