whatisgithub

What is react-native-columnar?

pioner92/react-native-columnar — explained in plain English

Analysis updated 2026-05-18

24TypeScriptAudience · developerComplexity · 4/5LicenseSetup · moderate

In one sentence

A React Native library that moves large numeric datasets from native C++ code to JavaScript as zero-copy typed arrays instead of slow, garbage-heavy arrays of objects.

Mindmap

mindmap
  root((react-native-columnar))
    What it does
      Zero-copy data transport
      JSI C++ to JavaScript
      Columnar ArrayBuffer layout
      Typed array views
    Tech stack
      TypeScript
      React Native
      C++
      JSI
    Use cases
      SQLite result sets
      Frame processor output
      Sensor streams
      Realtime charts
    Limitations
      Numeric data only
      No strings or objects
      Fixed width columns

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Pass large SQLite query results from native code to JavaScript without creating thousands of individual objects.

USE CASE 2

Stream camera frame processor output or sensor data into JS at high frequency with minimal overhead.

USE CASE 3

Feed realtime charts or analytics event streams that need to update quickly without GC pauses.

What is it built with?

TypeScriptReact NativeC++JSI

How does it compare?

pioner92/react-native-columnarcschanhniem/clawpingcub3y0nd/entropic
Stars242424
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatemoderatemoderate
Complexity4/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires writing a matching C++ schema and JS schema by hand, plus native build setup on iOS and Android.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

react-native-columnar is a library for React Native apps that need to move large amounts of numeric data from native code into JavaScript very quickly. Normally, when a native module returns a list of records, React Native turns each row into a JavaScript object, and every value gets boxed individually. With thousands of rows, this creates a lot of garbage for the JavaScript engine to collect, which slows things down and can cause stutter. This library takes a different approach. On the C++ side, you define a schema describing your columns, such as an id as a 32 bit integer, a status as an 8 bit integer, and timestamps as doubles. The native code packs all the values into one binary buffer instead of building individual objects. On the JavaScript side, that same buffer is exposed as a set of typed array views, one per column, so no copying or parsing happens when the data crosses into JavaScript. The README includes benchmark numbers comparing this approach against the standard array of objects pattern, showing large speed gains that grow with the number of rows, reaching over 200 times faster at 2000 rows in their test on an iPhone. Suggested uses include SQLite result sets, camera frame processor outputs, sensor streams, analytics events, and realtime charts, anywhere a native module needs to hand off a lot of numeric data at once. Installation is a standard npm or yarn package add, with autolinking on Android and automatic header pickup on iOS through CocoaPods. The README documents memory management carefully: the underlying buffer is freed automatically once every JavaScript reference to it is gone, so there is no manual cleanup step, but keeping a typed array view around longer than needed will keep the whole buffer in memory. The project targets developers building performance sensitive React Native apps with JSI native modules, and it is limited to fixed width numeric data, not strings or nested objects. It is released under the MIT license.

Copy-paste prompts

Prompt 1
Show me how to define a react-native-columnar schema in C++ for a table with an id, a status flag, and two timestamps.
Prompt 2
How do I read a react-native-columnar ArrayBuffer on the JS side and get typed array views for each column?
Prompt 3
Explain how react-native-columnar avoids garbage collection pressure compared to returning arrays of objects from a JSI module.
Prompt 4
Write the CMakeLists.txt setup needed to link react-native-columnar into a standalone Android library.

Frequently asked questions

What is react-native-columnar?

A React Native library that moves large numeric datasets from native C++ code to JavaScript as zero-copy typed arrays instead of slow, garbage-heavy arrays of objects.

What language is react-native-columnar written in?

Mainly TypeScript. The stack also includes TypeScript, React Native, C++.

What license does react-native-columnar use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is react-native-columnar to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is react-native-columnar for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.