Skip to main content

Alternative dynamic RPM bindings for Python

Project description

rpmdyn

Alternative dynamic RPM bindings for Python.

PyPI

Overview

rpmdyn provides an alternative means of using the rpm library from Python via dynamic binding (FFI).

This project is intended to support testing Python code based on the rpm library in CI or development environments where installing official bindings is too much of a hassle. You may find it useful if you have tried rpm-py-installer and ran into problems with it.

⚠️Major caveat⚠️: the provided RPM bindings are far from complete! Bindings have been implemented "on demand" to fit the author's needs.

Here's a comparison between a few different ways of accessing RPM Python bindings to help you understand if this project may be of use to you:

OS package rpmdyn rpm-py-installer
pip-installable from PyPI?
Usable in virtualenv? ❌¹
Supports multiple Python versions? ❌²
No compilers/headers needed? ❌³
Secure supply chain? ❌⁴
Complete bindings? ❌⁵
  1. Only usable if you enable system site-packages, which is generally unacceptable.
  2. While there are no hard and fast rules around what kinds of packages a Linux distribution provides, it is common for a distribution to choose one primary supported Python version and only provide libraries for that version.
  3. rpm-py-installer works by compiling RPM bindings and thus needs a compiler.
  4. rpm-py-installer downloads RPM sources insecurely with no validation of checksums or signatures. This is an issue if you only want to use known versions of all dependencies, and will not work at all in a firewalled setup (e.g. which only allows access to an internal PyPI registry).
  5. rpmdyn implements only a small subset of RPM bindings, as bindings need to be implemented manually. The set of available bindings reflects the needs of rpmdyn contributors.

Usage

Install rpmdyn and it will automatically be used by default:

  • if real (native) RPM bindings are available, then import rpm will use those.
  • otherwise, import rpm will use rpmdyn.

This is achieved via a PTH hook. If you wish to disable this behavior, set the RPMDYN_HOOK environment variable to 0.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rpmdyn-2025.8.tar.gz (55.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rpmdyn-2025.8-py3-none-any.whl (36.9 kB view details)

Uploaded Python 3

File details

Details for the file rpmdyn-2025.8.tar.gz.

File metadata

  • Download URL: rpmdyn-2025.8.tar.gz
  • Upload date:
  • Size: 55.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for rpmdyn-2025.8.tar.gz
Algorithm Hash digest
SHA256 f55858080480160a482cda3b3a8cc96f5cedffc3716efc41366c82ecccf89f89
MD5 c7854727bb98bbda16b8990be1d70cfa
BLAKE2b-256 839f08623c41ef61d050e95bace6002e878b0ce6fceda23f9ea0e2e9d4822f60

See more details on using hashes here.

Provenance

The following attestation bundles were made for rpmdyn-2025.8.tar.gz:

Publisher: release.yml on rohanpm/rpmdyn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rpmdyn-2025.8-py3-none-any.whl.

File metadata

  • Download URL: rpmdyn-2025.8-py3-none-any.whl
  • Upload date:
  • Size: 36.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for rpmdyn-2025.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ca442df7bdd59c3b194548e7bce1954dee38575047c6ebba260212f6e27cad70
MD5 9ac037d70feff82224b30429239f4ba0
BLAKE2b-256 a47112941c890bec0693fc9d9e63ec00bf8f05e4cbcaad313dbe5e19af7982fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for rpmdyn-2025.8-py3-none-any.whl:

Publisher: release.yml on rohanpm/rpmdyn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page