Skip to content

Latest commit

 

History

77 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenZip

A minimal, fast ZIP utility for Windows with native Explorer context-menu integration.

한국어 ZIP 파일 (CP949)을 깨짐 없이 다루는 가벼운 Windows 압축/해제기.

Features

  • Modern Win11 + classic Win10 context menus — extract and compress verbs appear in Win11's modern right-click menu and (on Win10 1903+) in the classic shell menu. The classic handler self-suppresses on Win11 to avoid duplication.
  • Compress from Explorer — right-click any file/folder → OpenZip → compress to <name>.zip, compress each separately, or open the options dialog (level / password / output path).
  • Correct Korean filenames — robust CP949 / UTF-8 detection on extract; selectable UTF-8 (default) or CP949 output on compress.
  • Password support — read both ZipCrypto and AES-256; write AES-256 encrypted archives when a password is set.
  • Dark mode — all dialogs follow the OS theme on Win11.
  • Fast — minizip-ng + zlib-ng under the hood, parallel extraction, single-instance queue prevents disk thrash.
  • Safe — Zip-slip, symlink, decompression-bomb, and Windows reserved-name protections built in. Compression writes atomically (.partial → rename) so a cancel or crash never leaves a half-written archive.
  • Light — ZIP only; no preview UI, no telemetry, no auto-update.

Download

Sideload install (Developer Mode on Windows required):

Add-AppxPackage .\OpenZip_0.3.0.msix

System requirements: Windows 10 1903 (build 18362) or later, or Windows 11. x64 only.

Command line

After install, openzip is on your PATH (via MSIX appExecutionAlias). When launched from a console, it runs in CLI mode — no dialogs, output to stdout:

openzip foo.zip                                   # list entries (unzip -l)
openzip --extract foo.zip --target out\           # extract
openzip --compress --output out.zip --item dir\   # compress
openzip --help                                    # usage

When launched from Explorer (double-click, right-click), the same binary runs the GUI dialogs. The mode is auto-detected from whether a parent console is attached.

PowerShell quirk: GUI-subsystem children don't block the shell, so direct invocation from PowerShell may show the prompt before the output arrives. Use Start-Process openzip -Wait -RedirectStandardOutput out.txt for clean capture, or invoke from cmd /c openzip ....

Screenshots

Archive browser

Double-click a .zip to browse its contents. Folders use the system folder icon, files pick by extension. Double-click a folder to drill in, or select rows + "Extract" to a chosen destination — single files or full subtrees:

Archive browser

Compress dialogs

Compress with options… (level, password, output path) and the progress dialog while a 200 MB batch runs:

Compress options Compress progress

Extract progress

Korean filenames decoded intact (CP949/UTF-8 auto-detected):

Extract progress

Password and conflict resolution

Password prompt before the first encrypted entry; conflict dialog with Overwrite / Skip / Rename / Cancel + "apply to all":

Password Conflict

Build from source

Prerequisites:

  • Visual Studio 2022 with MFC and C++/CLI components
  • Windows 10/11 SDK (latest)
  • vcpkg integrated with VS (manifest mode)
  • Python 3.10+ (for MSIX packaging script)
git clone https://github.com/vitaldb/openzip.git
cd openzip
msbuild OpenZip.sln /p:Configuration=Release /p:Platform=x64
python msix\build_msix.py 0.3.0
# Sideload (Developer Mode required):
Add-AppxPackage -Register .\msix\staging\AppxManifest.xml

To run the unit tests:

.\x64\Debug\CoreTests.exe

Releasing

Maintainers cut a release with one command (requires the GitHub CLI):

python tools\deploy.py 0.3.0

This builds Release|x64, packages the MSIX, tags v0.3.0, creates the GitHub release, and uploads the .msix as the release asset. CI is intentionally not used — see tools/deploy.py for rationale.

Architecture

Component Type Purpose
OpenZipCore static lib Extraction + compression engine, filename decoding, path validation
OpenZipApp MFC EXE Progress UI, password prompt, conflict and compress-options dialogs, dark-mode helper
OpenZipShellExt Win32 DLL IExplorerCommand for Win11 modern context menu (extract + compress)
OpenZipShellExtClassic Win32 DLL IContextMenu + IShellExtInit for Win10 classic menu (Win11 OS-gate self-suppresses)

See plan.md for the original design rationale and docs/superpowers/specs/ for v0.3's compress + Win10 spec.

License

MIT — see LICENSE.

Third-party libraries:

Credits

Developed by the VitalDB lab at Seoul National University Hospital.

About

Open Source Zip Application

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages