Skip to content

This is a React Native JSI File read and Write library that works 2x faster than the conventional React Native File read and Write library .

License

Notifications You must be signed in to change notification settings

nilavanraj/react-native-raw

Repository files navigation

react-native-raw

This is a React Native turbo File Read and Write module that works 2x faster then the conventional React Native file Read and Write library.

Screenshot-56

Features and Benchmark

  • synchronous and asynchronous methods.
  • 2x faster then conventional library.
  • Customize storage location.
  • High performance because everything is written in C++.

Test in nexus 6 with 3mb file

css-in-readme

Installation

npm i react-native-raw --save

AndroidManifest.xml

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

If you need to store visible use

<application
...
android:requestLegacyExternalStorage="true"/>

For iOS also run pod install in /ios folder.

Prerequisites

You must have Android NDK and CMake installed on android to build the library.

Methods

The following methods are implemented.

Directory

Following default directory can be used.

import rawJsiModule from 'react-native-raw';

const {
DocumentDir,
CacheDir,
DCIMDir,
PictureDir,
MusicDir,
DownloadDir,
MovieDir,
RingtoneDir } = rawJsiModule.Dir

RAW synchronous Write

    // Data must be base64 
    writeSync(data:string,path:string):string;

RAW synchronous Read

    readSync(path:string):string;

RAW asynchronous Write

    // Data must be base64 
    writeAsync(
    data:string, 
    path:string,
    callback(error:string,payload:string):void):string;

RAW asynchronous Read

     readAsync(
    path:string,
    callback(error:string,payload:string):void):string;

RAW Concurrent Write

    // Data must be base64 
    writeConcurrent(
    data:string, 
    path:string,
    seekp:number,
    callback(error:string,payload:string):void):string;

Thanks to the template & author:

The initial work done by ammarahm-ed has helped a lot in writing this repo.

Contributing

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

License

MIT