Native C core · WebAssembly worker

Binary deltas.
Everywhere RN
runs.

Create and apply compact binary patches across iOS, Android, and React Native Web—with one compatible patch format and typed API.

  • iOS · ObjC++
  • Android · JNI
  • Web · WASM
  • New Architecture
npm i react-native-bs-diff-patch
quick-start.ts
import { diffBytes, patchBytes } from 'react-native-bs-diff-patch';

const delta = await diffBytes(oldBytes, newBytes);
const restored = await patchBytes(oldBytes, delta);
Live / WASM

Try the real implementation

Patch playground

Loading runtime
Worker isolated No payload data leaves this page.
Patch size
Transfer saved
Runtime
Ready to generate and verify a patch ENDSLEY / BSDIFF43

Under the hood

One format.
Three runtimes.

  1. 01 Typed API

    Paths on native. Binary inputs on Web.

  2. 02 Worker boundary

    Serial native queues or an isolated module Worker.

  3. 03 Shared C core

    The same bsdiff and bzip2 sources everywhere.

  4. 04 Compact delta

    A compatible `ENDSLEY/BSDIFF43` patch.

Designed for integration

Native performance.
Explicit platform contracts.

Expensive work stays off React Native's module queue and the browser main thread. Unsupported API families reject clearly instead of guessing at filesystem behavior.

Read the architecture →
01

New Architecture ready

Version-aware Android packages and generated iOS TurboModule registration.

02

Web Worker by default

WASM work runs outside the page thread and terminates after each operation.

03

Cross-platform patches

Create a patch on one supported runtime and apply it on another.

04

Release-grade checks

Native matrices, device assertions, browser round trips, Metro and package gates.

Documentation

From first patch to production boundaries.

Follow platform-specific setup, inspect every API and error code, and understand memory, bundler, and compatibility constraints before you ship.