- Notifications
You must be signed in to change notification settings - Fork252
The 7-Zip derivative intended for the modern Windows experience
License
M2Team/NanaZip
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
NanaZip is an open source file archiver intended for the modern Windowsexperience, forked from the source code of well-known open source file archiver7-Zip.
All kinds of contributions will be appreciated. All suggestions, pullrequests, and issues are welcome.
If you want to sponsor the development of NanaZip, please read the document ofNanaZip Sponsor Edition. It's free for allNanaZip source code repository contributors.
In general, NanaZip Sponsor Edition is more like contributor's edition, butwe provide a way to buy the honor and make someone look like a source codecontributor, because NanaZip is always a community-friendly open-source project.
If you'd like me to add features or improvements ahead of time, please usepaid services.
Kenji Mouri
- Inherit all features from 7-Zip 24.09,7-Zip ZS and7-Zip NSIS.
- Support the dark mode for all GUI components.
- Support the Mica effect on the main window. You will enjoy the full windowimmersive Mica for all GUI components if you are using dark mode with HDRdisabled.
- Packaging with MSIX for modern deployment experience.
- Support the context menu in Windows 10/11 File Explorer.
- Provide 7-Zip execution alias for helping users to migrate to NanaZip.
- Support the Per-Monitor DPI-Aware for all GUI components.
- Support the i18n for GUI edition of Self Extracting Executable.
- Provide additional hash algorithms.
- MD2 (Inherit from 7-Zip ZS, but reimplemented with Windows CNG API)
- MD4 (Inherit from 7-Zip ZS, but reimplemented with Windows CNG API)
- MD5 (Inherit from 7-Zip, but reimplemented with Windows CNG API)
- SHA-1 (Inherit from 7-Zip, but reimplemented with Windows CNG API)
- SHA-256 (Inherit from 7-Zip, but reimplemented with Windows CNG API)
- SHA-384 (Inherit from 7-Zip, but reimplemented with Windows CNG API)
- SHA-512 (Inherit from 7-Zip, but reimplemented with Windows CNG API)
- ED2K (Implemented with Windows CNG API)
- AICH (Implemented with RHash)
- BLAKE2b (Implemented with RHash)
- BTIH (Implemented with RHash)
- EDON-R 224 (Implemented with RHash)
- EDON-R 256 (Implemented with RHash)
- EDON-R 384 (Implemented with RHash)
- EDON-R 512 (Implemented with RHash)
- GOST R 34.11-94 (Implemented with RHash)
- GOST R 34.11-94 CryptoPro (Implemented with RHash)
- GOST R 34.11-2012 256 (Implemented with RHash)
- GOST R 34.11-2012 512 (Implemented with RHash)
- HAS-160 (Implemented with RHash)
- RIPEMD-160 (Implemented with RHash)
- SHA-224 (Implemented with RHash)
- SHA3-224 (Inherit from 7-Zip, but reimplemented with RHash)
- SHA3-256 (Inherit from 7-Zip, but reimplemented with RHash)
- SHA3-384 (Inherit from 7-Zip, but reimplemented with RHash)
- SHA3-512 (Inherit from 7-Zip, but reimplemented with RHash)
- Snefru-128 (Implemented with RHash)
- Snefru-256 (Implemented with RHash)
- Tiger (Implemented with RHash)
- Tiger2 (Implemented with RHash)
- BTIH (Implemented with RHash)
- TTH (Implemented with RHash)
- Whirlpool (Implemented with RHash)
- XXH32 (Implemented with xxHash)
- XXH64 (Implemented with xxHash)
- XXH3_64bits (Implemented with xxHash)
- XXH3_128bits (Implemented with xxHash)
- SM3 (Implemented with GmSSL)
- Provide additional codecs. (Note: Decoder can be considered as decompressionsupport, Encoder can be considered as compression support, and Archiver can beconsidered as archive format support)
- Brotli (Decoder & Encoder & Archiver, inherited from 7-Zip ZS)
- Fast-LZMA2 (Encoder, inherited from 7-Zip ZS)
- Lizard (Decoder & Encoder & Archiver, inherited from 7-Zip ZS)
- LZ4 (Decoder & Encoder & Archiver, inherited from 7-Zip ZS)
- LZ5 (Decoder & Encoder & Archiver, Both inherited from 7-Zip ZS)
- Zstandard (Decoder inherited from 7-Zip, Encoder & Archiver inherited from7-Zip ZS)
- NSIS (Decoder's NSIS script decompiling support, inherited from 7-Zip NSIS)
- UFS/UFS2 file system image (Archiver, read-only, both big and little endian)
- .NET Single File Application bundle (Archiver, read-only, extractingcompressed files in the bundle are not supported)
- Electron Archive (asar) (Archiver, read-only)
- ROMFS file system image (Archiver, read-only)
- ZealFS file system image (Archiver, read-only)
- WebAssembly (WASM) binary file (Archiver, read-only)
- littlefs file system image (Work In Progress) (Archiver, only blockinformation can acquired)
- Provide additional security mitigations.
- Enable Control Flow Guard (CFG) to all target binaries for mitigating ROPattacks.
- Mark all x86 and x64 target binaries as compatible with Control-flowEnforcement Technology (CET) Shadow Stack.
- Strict handle checks at runtime to block the use of invalid handles.
- Disable dynamic code generation in Release builds prevents generatingmalicious code at runtime.
- Block loading unexpected libraries from remote sources at runtime.
- Enable Package Integrity Check.
- Enable EH Continuation Metadata.
- Enable Signed Returns.
- Enable disabling child process creation for NanaZip CLI and Self ExtractingExecutables. (Except installer mode of Self Extracting Executables, whichcompiled binaries is not provided in the NanaZip MSIX package.)
NanaZip 3.0 and onwards will have two distribution flavors called NanaZip andNanaZip Classic. Here are the differences between them.
NanaZip
- Only 64-Bit support.
- Only MSIX packaged version.
- Support the context menu in Windows 10/11 File Explorer.
- Support the file associations.
- Provide 7-Zip execution alias for helping users to migrate to NanaZip.
- Only support Windows 10 Version 2004 (Build 19041) or later.
- XAML-based GUI.
NanaZip Classic (Work In Progress)
- Have 32-Bit support.
- Only portable version.
- Don't have the context menu support.
- Don't have the file associations support.
- Don't have the 7-Zip execution alias support.
- Support Windows Vista RTM (Build 6000.16386) or later.
- Win32 GUI.
NanaZip (XAML-based GUI and MSIX package)
- Supported OS: Windows 10 Version 2004 (Build 19041) or later
- Supported Platforms: x86 (64-bit) and ARM (64-bit)
NanaZip Classic (Win32 GUI)
- Supported OS: Windows Vista RTM (Build 6000.16386) or later
- Supported Platforms: x86 (32-bit and 64-bit) and ARM (64-bit)
NanaZip Core (Core, Codecs, CLI and the Self Extracting Executables)
- Supported OS: Windows Vista RTM (Build 6000.16386) or later
- Supported Platforms: x86 (32-bit and 64-bit) and ARM (64-bit)
Note: Except the Self Extracting Executables, the ucrtbase.dll with 10.0.19041.0version or later need to be existed in the binary folder if you want to useNanaZip components on Windows versions earlier than Windows 10 Version 2004(Build 19041).
We chose Windows as the major platform for the NanaZip project supportedbecause Windows has maintained a good and proven ABI and compatibility, andstands out in the history of computing. But we also care about the non-Windowsplatform. Here are the policy for non-Windows platform support:
- The modern flavor of NanaZip won't support non-Windows unless someone portedWinRT XAML to POSIX. So, non-Windows support policy is only for NanaZip Coreand NanaZip Classic.
- The developer team will try best to support Wine which has the Windows Vistaor later feature level. Currenly tested simply under Wine 9.x.
- We don't support ReactOS and its derivatives because they are too hard tosupport. But testing under the ReactOS and its derivatives may be interesting.
Here are some available installation methods for NanaZip.
This is the recommended way to install NanaZip.
Search and installNanaZip
in Windows Store for the stable release, andNanaZip Preview
for the preview release.
Also, you can also click the Microsoft Store link you needed.
You also can download the MSIX Package inGitHub Releases.
After you have downloaded the MSIX Package, you can double click to install it,or you can execute the following command in the PowerShell which is run asadministrator.
PowerShell -NoLogo -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass Add-AppxPackage -DeferRegistrationWhenPackagesAreInUse -ForceUpdateFromAnyVersion -Path
The path of the MSIX package
Note: All needed dependencies are included in the MSIX Package of NanaZipbecause we known that it's very difficult for users who do not have access tothe store to get our dependency packages, and we want to be robust anddeployable everywhere.
If you want to install NanaZip for all users, you can execute the followingcommand in the PowerShell which is run as administrator.
PowerShell -NoLogo -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass Add-AppxProvisionedPackage -Online -PackagePath
The path of the MSIX package
-LicensePathThe path of the XML license file
You also can execute the following command in the Command Prompt which is runas administrator instead.
DISM.exe /Online /Add-ProvisionedAppxPackage /PackagePath:
The path of the MSIX package
/LicensePath:The path of the XML license file
For more information, please read documents forPowerShell andDISM
Note: Due to the policy from Microsoft Store, you need to run NanaZip with theinternet connection at the first time for getting the license if you installNanaZip without the internet connection, otherwise Windows won't launch NanaZipproperly.
If you want to uninstall NanaZip you installed for all users, you can executethe following command in the PowerShell which is run as administrator.
Get-AppxPackage -Name40174MouriNaruto.NanaZip -AllUsers | Remove-AppxPackage -AllUsers -Confirm
- If you can't find NanaZip in the context menu, please restart all FileExplorer processes via Task Manager.
- Due to the design of MSIX, drives' context menu in Explorer only show inWindows 11(22H2)+.
- Due to the issues in Desktop Bridge file system virtualization, you areunable to use NanaZip in the Safe Mode of Windows.
- Due to the policy from Microsoft Store, NanaZip is unable to disable DesktopBridge file system virtualization, so the file operations in
%UserProfile%/AppData
will be redirected in Windows 10, and file operationsin directories other thanLocal
,LocalLow
andRoaming
in%UserProfile%/AppData
will still be redirected in Windows 11. - Due to the Microsoft Store limitations, NanaZip 1.2 and later won't supportlanguages not mentioned inhttps://docs.microsoft.com/en-us/windows/uwp/publish/supported-languages.
- If you turn off the Windows Firewall, NanaZip may fail to install.(#204)(microsoft/terminal#12269)
- Due to the System Settings limitations, starting with Windows 11+(Build 22000.1817+ & 22621.1555+), you can launch directly to the Settingspage for file association for NanaZip.(https://learn.microsoft.com/en-us/windows/uwp/launch-resume/launch-default-apps-settings)
- Due to the Microsoft Store Licensing API implementation, you will find NanaZipwill try to access the Internet beginning with NanaZip 3.0 because NanaZipneeds to use that to check the Sponsor Edition addon licensing status.
- For optimizing the user experience, NanaZip will only check the SponsorEdition addon licensing status at the first time your launch NanaZip FileManager. You can click the sponsor button if you want to refresh the statusafter you have purchased or redeemed the Sponsor Edition addon.
About
The 7-Zip derivative intended for the modern Windows experience