New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

react-native-nitro-zlib

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-nitro-zlib

Node.js Zlib implementation for React Native using Nitro Modules and Rust

latest
Source
npmnpm
Version
0.2.1
Version published
Weekly downloads
25
-10.71%
Maintainers
1
Weekly downloads
 
Created
Source

react-native-nitro-zlib

High-performance, 100% Node.js compatible Zlib module for React Native, powered by Nitro Modules and Rust.

license platform compatibility 中文文档

🌟 Features

  • 🚀 Blazing Fast: Core logic written in Rust (flate2 & brotli crates), bridging directly to C++ via Nitro Modules with zero JSI serialization overhead.
  • Node.js Zlib API: Designed to provide a consistent API experience with the Node.js environment.
  • 📦 Full Algorithm Support: Supports Deflate, Inflate, Gzip, Gunzip, Brotli, and more.
  • ♻️ Streaming Support: Full support for Readable, Writable, and .pipe() operations.
  • 💠 Sync & Async: Provides both synchronous (Sync) and callback-based asynchronous APIs.
  • 🛠️ Utilities: Built-in high-performance crc32 calculation.

📦 Installation

yarn add react-native-nitro-zlib
# or
npm install react-native-nitro-zlib

iOS

cd ios && pod install

🚀 Usage Guide

1. Synchronous API (Buffer Operations)

Ideal for small files or latency-critical scenarios.

import zlib from 'react-native-nitro-zlib';
import { Buffer } from 'buffer';

const input = Buffer.from('hello world');

// Gzip Compression
const compressed = zlib.gzipSync(input);

// Gzip Decompression
const decompressed = zlib.gunzipSync(compressed);
console.log(decompressed.toString()); // 'hello world'

// Brotli Compression (Sync)
const brotliOut = zlib.brotliCompressSync(input);

2. Asynchronous API (Callbacks)

Provides the same asynchronous callback interface as Node.js.

import zlib from 'react-native-nitro-zlib';

zlib.deflate('some data', (err, buffer) => {
  if (!err) {
    console.log('Compressed buffer:', buffer);
  }
});

3. Streaming API (Streams)

Ideal for handling large files, supporting pipe operations.

import zlib from 'react-native-nitro-zlib';
// Can be used with other Transform streams or Nitro streams

const gzip = zlib.createGzip();
const gunzip = zlib.createGunzip();

gzip.pipe(gunzip).on('data', (chunk) => {
  console.log('Decompressed chunk:', chunk);
});

gzip.write('This is data for streaming compression');
gzip.end();

4. Utility Methods

import zlib from 'react-native-nitro-zlib';
import { Buffer } from 'buffer';

// Calculate CRC32
const crc = zlib.crc32(Buffer.from('Hello World'));
console.log('CRC32:', crc.toString(16)); // 4a17b156

// Access Constants
console.log(zlib.constants.Z_BEST_COMPRESSION); // 9

📊 API Support Status

APIStatusNotes
deflate / Sync✅ Supported
inflate / Sync✅ Supported
gzip / Sync✅ Supported
gunzip / Sync✅ Supported
brotliCompress / Sync✅ Supported
brotliDecompress / Sync✅ Supported
createGzip / createGunzip✅ SupportedStream Factory
createBrotliCompress✅ SupportedStream Factory
crc32✅ Supported
constants✅ Supported

🛠️ Technical Details

The project consists of three main components:

  • Rust Core (rust_c_zlib): Wraps flate2 and brotli crates.
  • C++ Bridge: C++ interfaces automatically generated by Nitro Modules.
  • TypeScript Layer: JS interfaces following Node.js specs, integrated with readable-stream.

📄 License

ISC

FAQs

Package last updated on 16 Mar 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts