skillfed

edk2-pytool-library

Python library supporting UEFI EDK2 firmware development

edk2-pytool-library v0.23.15 614.4K downloads/30d#5,747 on PyPI67
License unclear Active released

What it is and what it does

edk2-pytool-library is a Python library maintained by Tianocore that provides reusable building blocks for UEFI firmware development. It offers file parsers for EDK2-specific formats, UEFI-defined binary encoding and decoding services, and Python wrappers around system tools commonly used in firmware builds. The library is designed as a supplemental package—not required for basic EDK2 builds—but intended to be imported into other scripts and tools that need consistent, shared firmware development utilities.

The package depends on eight runtime libraries including cryptography for security operations, GitPython for version control integration, sqlalchemy for data management, and pywin32 for Windows system access. It is actively maintained with recent releases and passes CI testing across Windows and Ubuntu. The library is positioned as a code-sharing layer to avoid duplication across firmware development environments and tools.

Use it for:

  • Parse and manipulate EDK2-specific file formats in Python scripts without reimplementing format logic
  • Encode and decode UEFI binary structures in firmware build pipelines or analysis tools
  • Wrap system CLI tools for consistent invocation across firmware development projects
  • Provide standardized logging, command execution, and path resolution utilities in workflows
  • Share common firmware development code across multiple EDK2-based projects and environments

Worth the install?

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

Provides Python classes and utilities for UEFI firmware development, including file parsers, binary encoding/decoding services, and wrappers for system tools used in EDK2 builds.

Yes, if you are actively developing UEFI firmware with EDK2. The package is actively maintained, has low install friction, passes CI testing, and provides genuine code-sharing value for firmware developers. Verify the BSD-2-Clause Plus Patent License terms for your use case first, and note that it is supplemental—not required for basic EDK2 builds.

Install

edk2-pytool-library on PyPI

pip

pip install edk2-pytool-library

uv

uv add edk2-pytool-library

poetry

poetry add edk2-pytool-library

Installing edk2-pytool-library

Before you install

Low friction installation as a pure Python wheel. Actively maintained with recent releases and passing CI across Windows and Ubuntu with Python 3.12, 3.13, and 3.14, with minimum Python 3.10 support. Eight runtime dependencies are standard ecosystem packages.

License in practice

License treatment is unclear in metadata, though the description states BSD-2-Clause Plus Patent License applies. Verify actual license terms before use in proprietary or restricted contexts.

Quickstart

pip install edk2-pytool-library

from edk2_pytool_library import <module>
# Use library classes for UEFI file parsing or binary encoding

Requires Python 3.10 or later. On Windows, pywin32 may require additional setup for system integration.

Verify before relying

  • Exact scope of UEFI/EDK2 file format support and which specific parsers are included
  • Whether the package is suitable for production firmware builds or primarily for development/testing
  • Performance characteristics when handling large firmware binaries or complex EDK2 projects

Package facts

License not declared (unclear)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 8 — joblib, GitPython, sqlalchemy, pygount, pywin32, pyasn1, pyasn1-modules, cryptography
Maintenance actively maintained — 51 days since the last release
Last repo commit
First released
Downloads 614,383/month — #5,747 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: edk2_pytool_library-0.23.15-py3-none-any.whl

Development Status :: 4 - BetaIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Tags

UEFI firmware development libraryEDK2 Python toolsfirmware build utilitiesUEFI binary encoding decodingfirmware file parsersEDK2 build supportfirmware development toolkit
firmware-developmentuefiedk2

More Build Tools packages