Skip to content

isaacrowntree/react-native-nitro-unzip

Repository files navigation

react-native-nitro-unzip

npm npm downloads license CI Platform - iOS Platform - Android

High-performance ZIP operations for React Native, powered by Nitro Modules.

Read the full documentation

Features

  • Fast — ~500 files/sec (iOS), ~474 files/sec (Android) on a 350MB / 10k file archive
  • Zero bridge overhead — progress callbacks via JSI, no serialization
  • Cancellable — synchronous cancellation via JSI
  • Password support — AES-256 encrypted archives (zip & unzip)
  • Zip creation — compress directories with optional password protection
  • Concurrent operations — multiple tasks run independently
  • Background execution — iOS background task management

Installation

npm install react-native-nitro-unzip react-native-nitro-modules
cd ios && pod install

Requires React Native 0.75+, Nitro Modules 0.34+, iOS 15.5+, and Java 17 (Android).

iOS deployment target

The library depends on SSZipArchive, which requires iOS 15.5+. Ensure your app's Podfile (or Expo Podfile.properties.json) sets ios.deploymentTarget to 15.5 or higher.

Quick Example

import { getUnzip } from 'react-native-nitro-unzip';

const unzip = getUnzip();
const task = unzip.extract('/path/to/archive.zip', '/path/to/output');

task.onProgress((p) => {
  console.log(`${(p.progress * 100).toFixed(0)}% — ${p.extractedFiles}/${p.totalFiles} files`);
});

const result = await task.await();
console.log(`Extracted ${result.extractedFiles} files in ${result.duration}ms`);

Documentation

Visit the docs site for:

Example

See the example app for a working demo.

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

About

High-performance ZIP extraction for React Native, powered by Nitro Modules. SSZipArchive (iOS) + optimized ZipInputStream (Android). Progress callbacks, cancellation, concurrent extractions.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors