Code Monkey home page Code Monkey logo

nanazip's Introduction

NanaZip NanaZip

GitHub Actions Build Status Total Downloads

Windows Store - Release Channel Windows Store - Preview Channel

Latest Version - Release Channel Latest Version - Preview Channel

Latest Release Downloads - Release Channel Latest Release Downloads - Preview Channel

ContextMenu MainWindow

NanaZip is an open source file archiver intended for the modern Windows experience, forked from the source code of well-known open source file archiver 7-Zip.

All kinds of contributions will be appreciated. All suggestions, pull requests and issues are welcome.

Features

  • Inherit all features from 7-Zip 22.01.
  • Packaging with MSIX for modern deployment experience.
  • Support the context menu in Windows 10/11 File Explorer.
  • Enable NSIS script decompiling support for the NSIS archives. (Merged from 7-Zip NSIS branch.)
  • Provide 7-Zip execution alias for helping users to migrate to NanaZip.
  • Support the Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard codecs. (Merged from 7-Zip ZS branch.)
  • Support the Per-Monitor DPI-Aware for all GUI components.
  • Support the i18n for GUI edition of Self Extracting Executable.
  • Integrate the following HASH algorithms to NanaZip from RHash (AICH, BLAKE2b, BTIH, ED2K, EDON-R 224, EDON-R 256, EDON-R 384, EDON-R 512, GOST R 34.11-94, GOST R 34.11-94 CryptoPro, GOST R 34.11-2012 256, GOST R 34.11-2012 512, HAS-160, RIPEMD-160, SHA-224, SHA3-224, SHA3-256, SHA3-384, SHA3-512, Snefru-128, Snefru-256, Tiger, Tiger2, TTH, Whirlpool) and xxHash (XXH3_64bits, XXH3_128bits).
  • Enable Control Flow Guard (CFG) to all target binaries for mitigating ROP attacks.
  • Mark all x86 and x64 target binaries as compatible with Control-flow Enforcement Technology (CET) Shadow Stack.
  • Strict handle checks at runtime to block the use of invalid handles.
  • Disable dynamic code generation in Release builds prevents generating malicious code at runtime.
  • Block loading unexpected libraries from remote sources at runtime.
  • Enable Package Integrity Check.
  • Enable EH Continuation Metadata.
  • Enable Signed Returns.

System Requirements

  • Supported OS: Windows 10 Version 2004 (Build 19041) or later
  • Supported Platforms: x86, x86-64(AMD64) and ARM64.

Download and Installation

Here are some available installation methods for NanaZip.

Microsoft Store

This is the recommended way to install NanaZip.

Search and install NanaZip in Windows Store for stable release, and NanaZip Preview for preview release.

Also, you can also click the Microsoft Store link you needed.

MSIX Package

You also can download the MSIX Package in GitHub 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 as administrator.

PowerShell -NoLogo -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass Add-AppxPackage -DeferRegistrationWhenPackagesAreInUse -ForceUpdateFromAnyVersion -Path The path of the MSIX package

P.S. All needed dependencies are included in the MSIX Package of NanaZip because we known that it's very difficult for users who do not have access to the store to get our dependency packages, and we want to be robust and deployable everywhere.

If you want to install NanaZip for all users, you can execute the following command 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 -SkipLicense

You also can execute the following command in the Command Prompt which is run as administrator instead.

DISM.exe /Online /Add-ProvisionedAppxPackage /PackagePath:The path of the MSIX package /SkipLicense

For more information, please read documents for PowerShell and DISM

P.S. Due to the policy from Microsoft Store, you need to run NanaZip with the internet connection at the first time for getting the license if you install NanaZip without the internet connection, otherwise Windows won't launch NanaZip properly.

If you want to uninstall NanaZip you installed for all users, you can execute the following command in the PowerShell which is run as administrator.

Get-AppxPackage -Name 40174MouriNaruto.NanaZip -AllUsers | Remove-AppxPackage -AllUsers -Confirm

Known issues

  • If you can't find NanaZip in the context menu, please restart all File Explorer processes via Task Manager.
  • Due to the issues in Desktop Bridge file system virtualization, you are unable to use NanaZip in the Safe Mode of Windows.
  • Due to the policy from Microsoft Store, NanaZip is unable to disable Desktop Bridge file system virtualization, so the file operations in %UserProfile%/AppData will be redirected in Windows 10, and file operations in directories other than Local, LocalLow and Roaming in %UserProfile%/AppData will still be redirected in Windows 11.
  • Due to the Microsoft Store limitations, NanaZip 1.2 and later won't support languages not mentioned in https://docs.microsoft.com/en-us/windows/uwp/publish/supported-languages.

Development Roadmap

  • 1.0 (December 8, 2021)
    • Modernize the build toolchain with MSBuild for using MSIX packaging and parallel compilation support.
    • Use VC-LTL 5.x toolchain to make the binary size even smaller than the official 7-Zip because we can use ucrtbase.dll directly and the optimizations from modern compile toolchain.
    • Add the context menu support in Windows 10/11 File Explorer.
    • New icons and minor UI tweaks.
    • Merge NSIS script decompiling support from 7-Zip NSIS branch. (Suggested by alanfox2000.)
    • Provide 7-Zip execution alias for helping users to migrate to NanaZip. (Suggested by AndromedaMelody.)
    • Add support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard from 7-Zip ZS branch. (Suggested by fcharlie.)
  • 1.1 (March 17, 2022)
    • Add assembly implementations from 7-Zip back for improving performance.
    • Reimplement the about dialog with Task Dialog.
    • Modernize the message boxes with Task Dialog.
  • 1.2 (May 11, 2022)
    • Add Per-Monitor DPI-Aware support for all UI components.
    • Modernize the i18n implementation and migrate language files from .txt to .resw. (Suggested by Maicol Battistini.)
    • Add i18n support for Self Extracting Executables.
  • 2.0 (October 4, 2022)
    • Provide the new icons.
    • Start modernizing the core implementation.
    • Add the UI stack based on XAML Islands which is used in NanaZip.
    • Start modernizing the UI with XAML Islands with the Windows 11 control style, dark and light mode support.
  • 2.x Series (2023 Q3)
    • Continue to modernize the UI with XAML Islands with the Windows 11 control style, dark and light mode support.
    • Full Accessibility support in all UI components.
    • Migrate configurations from registry to json. (Suggested by AndromedaMelody.)
    • Continue to modernize the core implementation.
    • Try to Windows Runtime component for interoperability.
    • Provide NanaZip Installer for simplify the deployment.
  • 3.x Series (2024 Q3)
    • Try to add option for save file names with UTF-8 in 7z archives.
    • Add batch task support. (Suggested by 刘泪.)
    • Try to design the new UI layout. (Suggested by wangwenx190.)
    • Try to add option for using Windows Imaging API (WIMGAPI) backend to make better creation and extraction support for wim archives, also add creation and extraction support for esd archives.
    • Try to add pri archive extracting support.
    • Try to add smart extraction.
    • Try to add language encoding switching support for file names in File Manager. (Suggested by 刘泪 and zjkmxy.)
    • Try to add deleting source after archiving support. (Suggested by OrionGrant.)
    • Try to add an option when extracting an archive to open the folder where you extracted the files, like WinRAR. (Suggested by maicol07.)
    • Try to add ISO creation support.
  • 5.x Series (2025 Q3)
    • Currently no new feature plans for this series.
  • Unpredictable Future Series (T.B.D.)
    • Try to create a new archive file format optimized for software distribution and image backup and restore.
      • Keeping metadata provided by file system.
      • File referencing support.
      • Integrity verification support.
      • Differential support.
      • Recovery record support.
      • Provide lightweight SDK for authoring and consuming.
    • Try to contribute recovery record support for 7z archives to 7-Zip mainline. (Suggested by SakuraNeko.)
    • Try to port NanaZip to Linux.
      • Try to port MegaUI (an developing lightweight UI framework created by mingkuang, under internal developing at the current stage, will be open source if the work has done) framework to Linux.
      • Try to create MinLin (a.k.a. Minimum Linux, a distro intended for helping publish distroless binaries and provide some Windows API functions as static libraries for having a lightweight platform abstraction layer) project because I think NanaZip should support distroless environment for reducing time wasting for compiling for different distros.
    • After porting NanaZip to Linux, accept contributions from community folks for other POSIX platforms (e.g. FreeBSD) and macOS support.
    • Try to add extension for Windows File Explorer for give user immersive experience like builtin zip file support in Windows. (Suggested by SakuraNeko and shuax.)

Documents

nanazip's People

Contributors

mourinaruto avatar andromedamelody avatar dinhngtu avatar chuckmichael avatar maicol07 avatar blueberryy avatar henry2o1o avatar manfromarce avatar pschaub avatar sakuraneko avatar wallrik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.