Skip to content

Release 3.0.0

Compare
Choose a tag to compare
@mrousavy mrousavy released this 27 Aug 09:57
· 14 commits to main since this release
ac35228

3.0.0 (2024-08-27)

react-native-mmkv V3 is now stable!!! 🎉🥳

V3 is a complete rewrite of the react-native-mmkv codebase to make it a pure C++ TurboModule (which has a better startup speed), and now shares a single codebase across iOS and Android for consistency 👏

Important

react-native-mmkv 3.0.0 requires react-native 0.74 or higher!

✨ Features

  • Fully rewrite react-native-mmkv to a single pure C++ / CxxTurboModule 🫴 (#656 / 87dedcd / 660cda3)
  • Add trim() func and size property (b2d80fa)
  • BREAKING: Use ArrayBuffer instead of Uint8Array in getBuffer (c03ef4d)
  • BREAKING: Properly throw errors if set or recrypt failed (#706) (0fde8a5)
  • Support AppGroups 🚀 (#705) (5a63632)
  • Add Automocking in vitest (#666) (86d5e94)
  • Support 16KB page size on newer Android phones 🥳

🐛 Bug Fixes

  • Fix encryption not working on keys longer than 10 characters 🔥
  • Fix closing destroy (3c2babd / 6eacc14)
  • Only generate C++ bindings, skip Java/ObjC (e89a472)
  • Use FORCE_POSIX to force C++ (8fa5ec7)
  • Always trim, remove WeakRef (6dfc8e1)
  • Only log Warnings or Errors in Release (cb5347b)
  • Increase heap (ac130f8)
  • Throw error if TurboModules are not found (8770d5d)
  • Use isTest (57a4545)
  • Eagerly initialize TurboModule because Proxies are slow (#671) (d1f9a1a)

💨 Performance Improvements

  • Make react-native-mmkv a CxxTurboModule - faster, and less initialization overhead/complexity!
  • Clear memory cache on trim and dtor (c01acb5)

📚 Documentation

  • Update Jotai wrapper documentation - remove the double JSON.stringify() and JSON.parse() (#661) (ff26c4e)