npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

react-native-ultrastore

v2.0.2

Published

Ultra fast storage + state manager for React Native with MMKV v4, Nitro Modules, Atoms, and Zustand support.

Readme

🚀 UltraStore v2.0.0

New Architecture Nitro Module MMKV v4 TypeScript

The fastest, most modern storage + state management library for React Native in 2026. Built on MMKV v4 and Nitro Modules for near-zero bridge overhead.

[!IMPORTANT] React Native 0.75+ required. This library uses MMKV v4 which is a Nitro Module.

✨ Features (2026 Edition)

  • Blazing Fast: 10–30x faster than AsyncStorage, powered by MMKV v4 + Nitro JSI.
  • 🏗️ New Architecture First: Full support for Fabric and TurboModules with zero bridge overhead.
  • ⚛️ Atom API: Jotai-style atomic state for composable, isolated state units.
  • 📦 Zustand Adapter: Use UltraStore as a persistence layer for Zustand in one line.
  • 🛠️ DevTools: Built-in middleware to inspect live state in Metro/Flipper.
  • 🔄 Batch Updates: Write multiple keys in a single operation with zero redundant renders.
  • 🌐 Web Support: Seamless fallback to localStorage for Expo Web.
  • 🧪 Expo Go Fallback: Graceful in-memory fallback for Expo Go environments.
  • 🔐 Military-Grade Encryption: Secure your data with MMKV's native encryption.

🚀 Quick Start

npm install react-native-ultrastore react-native-mmkv react-native-nitro-modules

1. Basic Hook

import { useUltraStore } from 'react-native-ultrastore';

const [user, setUser] = useUltraStore('user_profile', { name: 'Samad' });

2. Atomic State (New!)

import { createAtom, useUltraAtom } from 'react-native-ultrastore';

const themeAtom = createAtom('app_theme', 'dark');

function Component() {
  const [theme, setTheme] = useUltraAtom(themeAtom);
}

3. Zustand Integration (New!)

import { createUltraZustandStorage } from 'react-native-ultrastore/zustand';

const useStore = create(
  persist(
    (set) => ({ ... }),
    {
      name: 'my-storage',
      storage: createJSONStorage(() => createUltraZustandStorage()),
    }
  )
);

📊 Benchmarks (2026)

| Operation | AsyncStorage | MMKV v2 | UltraStore v2 (Nitro) | | :--- | :--- | :--- | :--- | | Write (1KB) | ~5.2ms | ~0.15ms | ~0.04ms | | Read (1KB) | ~3.8ms | ~0.08ms | ~0.02ms | | Bridge Overhead | High (JSON) | Low (JSI) | Zero (Nitro C++) |


🛠️ DevTools Middleware

Enable the built-in DevTools to see your state changes in real-time.

import { defaultStorage, createDevToolsMiddleware } from 'react-native-ultrastore';

if (__DEV__) {
  defaultStorage.use(createDevToolsMiddleware());
}

In Dev mode, access your state via global.__ULTRASTORE_STATE__ in the Metro console.


🔄 Batch Updates

import { batchSet } from 'react-native-ultrastore';

batchSet({
  'is_logged_in': true,
  'last_login': Date.now(),
  'session_count': 5
}); // Only one set of notifications triggered!

🗺️ Comparison

| Feature | UltraStore | AsyncStorage | Zustand | Jotai | | :--- | :--- | :--- | :--- | :--- | | Persistence | ✅ (Built-in) | ✅ | ⚠️ (Manual) | ⚠️ (Manual) | | Speed | 🚀 (Nitro) | 🐢 (Bridge) | ✅ | ✅ | | Atoms | ✅ | ❌ | ❌ | ✅ | | Encryption | ✅ | ❌ | ❌ | ❌ | | Web/Expo Go | ✅ | ✅ | ✅ | ✅ |


🛤️ Migration Guide (v1 -> v2)

UltraStore v2.0.0 is a major upgrade with some breaking changes due to MMKV v4.

  1. Peer Dependencies: Ensure you have react-native-mmkv@>=4.0.0 and react-native-nitro-modules.
  2. Native Code: If you were using StorageEngine.delete(), it now calls remove() internally to match MMKV v4. The API remains backward compatible.
  3. New Architecture: No code changes required! UltraStore v2 is bridge-free by default.

License

MIT © Samad Khan