pioner92/react-native-columnar — explained in plain English
Analysis updated 2026-05-18
Pass large SQLite query results from native code to JavaScript without creating thousands of individual objects.
Stream camera frame processor output or sensor data into JS at high frequency with minimal overhead.
Feed realtime charts or analytics event streams that need to update quickly without GC pauses.
| pioner92/react-native-columnar | cschanhniem/clawping | cub3y0nd/entropic | |
|---|---|---|---|
| Stars | 24 | 24 | 24 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 4/5 | 3/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires writing a matching C++ schema and JS schema by hand, plus native build setup on iOS and Android.
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.
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.
Mainly TypeScript. The stack also includes TypeScript, React Native, C++.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.