react-native-kernel
One well-typed native toolkit for React Native — device info, networking, secure storage, biometric auth, permissions, QR/document scanning, file picking, and update checks. Replace 8–10 small packages with one.
npm install react-native-kernelkernel/system
useDeviceInfo(), useNetwork(),
useBattery() — device identity, live connectivity
(including IP, SSID, carrier), and battery state.
kernel/network
createApiClient() with token refresh, retry with backoff, and
an offline queue. Plus InternetGuard and
useFileUpload().
kernel/storage
SecureStorage (Keychain / Keystore) and
useOfflineSync() backed by a synchronous, MMKV-fast local KV
store — with zero added native dependencies.
kernel/auth
useBiometricAuth() and useAuthToolkit() — Face
ID / Touch ID / Fingerprint, session locking, and auto-logout on
inactivity or backgrounding.
kernel/permissions
usePermission() — one request/check API for camera,
location, notifications, and storage across both platforms, with a
built-in denied-state fallback UI.
kernel/media
useSmartScanner() — QR code, barcode, and document
scanning, backed by each platform’s real system scanner UI.
kernel/picker
usePicker() — pick any file type via each platform’s real
system file picker, with URI, whole-file base64, or streamed base64
chunks for large files. Zero extra dependencies.
kernel/updates
useAppUpdateCheck() — compares the installed version
against the App Store / Play Store latest.
Why react-native-kernel?
One package, not ten
A typical app reaches for react-native-device-info,
@react-native-community/netinfo, axios, react-native-keychain,
react-native-mmkv, react-native-biometrics, react-native-permissions,
a barcode-scanner library, and an in-app-update library — nine separate
version-compatibility matrices to track, nine sets of native code to keep
in sync with your React Native upgrades. Kernel replaces all of it with one
package, one version number, one native-linking step.
Almost zero dependencies, and the two exceptions are explained
No MMKV, no Axios, no NetInfo. Every feature is built directly on platform
APIs. There are exactly two deliberate exceptions — androidx.biometric
for the Android biometric prompt, and Google Play Services for the Android
scanner UI — and both are called out explicitly in these docs rather than
silently bundled.
Real system UI, not a reimplementation
The scanner in kernel/media is Google’s own ML Kit scanner sheet on
Android and Apple’s own VisionKit document scanner on iOS — not a custom
camera view this package maintains. Same idea for kernel/auth’s biometric
prompt: it’s the actual system dialog, so it already matches your users’
device language, accessibility settings, and OS look.
New Architecture from day one
Every native module is a TurboModule written against Codegen — no legacy
bridge fallback, no dual-implementation maintenance burden. That also means
correctly synchronous calls where it matters (kernel/storage’s fast KV
store) instead of everything being forced through the async bridge.