←back to thread

135 points rmast | 1 comments | | HN request time: 0.327s | source

Hey everyone!

I'm excited to share a small web app I built that allows you to view and extract the contents of Windows MSI installers directly in your browser. It's essentially a web-based "lessmsi" powered by Pyodide.

You can try it out at: https://pymsi.readthedocs.io/en/latest/msi_viewer.html

My motivation for building this was from part of my day job -- I often get Windows MSI installers and need to extract files while preserving the relative directory structure and filenames, as they would appear after a full installation. The existing tools I found were good but limited in which platforms they support: lessmsi works great on Windows, while msitools works for Linux/macOS. Neither is a truly cross-platform solution that works on any major OS.

So we developed pymsi (a pure Python library, available on GitHub at https://github.com/nightlark/pymsi) to handle reading and extracting MSI files from Python. Then I realized that since pymsi has no native dependencies, it could potentially run in a web browser using Pyodide. After a bit of "vibe coding" and fixing some "hallucinated" functions/classes that don't exist in pymsi, the result was this client-side web app.

If you need an MSI file to experiment with, older versions of PowerToys included the installer in .msi form, such as this one: https://github.com/microsoft/PowerToys/releases/download/v0....

Note that the underlying pymsi library hasn't been extensively tested against a bunch of MSI installers yet, so there might still be lingering bugs. If you come across any issues, please don't hesitate to report them in on the GitHub repository (https://github.com/nightlark/pymsi/issues).

I'd love to hear your feedback and answer any questions!

Show context
danielodievich ◴[] No.44332772[source]
I was there at Microsoft in the beginning of MSI, which was what, Office XP? Gosh or was it 2003? The tooling for dealing with them was super jank then. I could have never predicted that you'd be able to just casually open it in a browser. Nice job man!
replies(1): >>44333039 #
1. EvanAnderson ◴[] No.44333039[source]
I remember dealing with installing the Windows Installer redistributable on Windows 98. The Wikipedia[0] article cites Office 2000 shipped w/ Windows Installer 1.0.

[0] https://en.wikipedia.org/wiki/Windows_Installer