Skip to content

nightlark/pymsi

pymsi

PyPI MIT License Python Versions CI Documentation Status pre-commit.ci status

A pure Python library for reading and manipulating Windows Installer (MSI) files. Based on the rust msi crate and msitools utilities.

Getting Started

For a demo of what pymsi can do, check out the online MSI viewer and file extractor on our ReadTheDocs site. It's like lessmsi, but runs fully client-side in your browser.

For more in-depth documentation on pymsi usage and the API, see the documentation (very early WIP).

Installation

pymsi is available on PyPI (PEP 541 request for pymsi name is being processed):

pip install python-msi

It is recommended to either install it in a virtual environment, or use a tool such as pipx or uv to avoid potential conflicts with other Python modules on the same system.

Usage

To use pymsi as a library that gets called from other code:

import pymsi

To use pymsi as a command line tool:

pymsi <command> [path_to_msi_file] [output_folder]

Use the help command to see a list of supported commands:

Available commands:
  tables - List all tables in the MSI file
  dump - Dump the contents of the MSI file
  test - Check if the file is a valid MSI file
  extract - Extract files from the MSI file
  help - Show this help message

Getting Involved

For questions or support, please create a new discussion on GitHub Discussions, or open an issue for bug reports and feature requests.

Contributing

Contributions are welcome. Bug fixes or minor changes are preferred via a pull request to the pymsi GitHub repository. For more information on contributing see the CONTRIBUTING file.

License

pymsi is released under the MIT license. See the LICENSE and NOTICE files for details. All new contributions must be made under this license.

SPDX-License-Identifier: MIT

LLNL-CODE-862419

About

Pure Python library for reading and extracting the contents of Windows installer (.msi) files

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages