mrousavy / react-native-blob-jsi-helper

A React Native library for accessing an ArrayBuffer of a Blob instance.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

react-native-blob-jsi-helper

Try Showtime!

A React Native library for directly accessing an ArrayBuffer of a Blob instance.

Note: This is a workaround. A long-term solution would be to implement this directly on the Blob instance in React Native Core.

Installation

npm install react-native-blob-jsi-helper

Usage

Accessing the ArrayBuffer of a Blob instance

import { getArrayBufferForBlob } from "react-native-blob-jsi-helper";

// ...

const blob = ...
const arrayBuffer = getArrayBufferForBlob(blob);

Creating a Blob from an ArrayBuffer

import { getBlobForArrayBuffer } from "react-native-blob-jsi-helper";

// ...

const arrayBuffer = ...
const blob = getBlobForArrayBuffer(arrayBuffer);

Performance

If you know me, you know that my libraries are as fast as they can get. react-native-blob-jsi-helper is no different - it is written in C++ JSI and is therefore really fast.

  • Zero bridge-traffic.
  • Zero serialization/deserialization.

Blob -> ArrayBuffer

  • For a 10 kB Buffer, I have measured 1ms.
  • For a 12 MB Buffer, I have measured 13ms.

ArrayBuffer -> Blob

  • For a 10 kB Buffer, I have measured 0.05ms.
  • For a 12 MB Buffer, I have measured 0.3ms.

Contributing

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

License

MIT

About

A React Native library for accessing an ArrayBuffer of a Blob instance.

License:MIT License


Languages

Language:C++ 53.5%Language:Java 15.3%Language:Objective-C++ 10.8%Language:TypeScript 8.3%Language:Ruby 4.9%Language:JavaScript 3.2%Language:CMake 1.9%Language:Objective-C 1.7%Language:C 0.2%Language:Swift 0.1%