Skip to main content

Comparison with other libraries

⚖️ Comparison​

thiskuatsu/
cloud-storage
icloud-kitexpo-cloudkitokwasniewski/
icloud-storage
cloudkit-
storage
iCloud key-value store✅✅✅-✅-
CloudKit records✅-✅✅-✅
Google Drive✅✅----
iOS✅✅✅✅✅✅
Android✅✅-❌ [1]--
Web✅partial [2]----
CloudKit on Android/web✅--❌ [1]--
New Architecture✅✅✅✅✅-
Legacy Architecture✅❌✅ [3]✅ [3]✅ [3]✅
Typed error codes✅-partial✅--
5-value account status✅booleanboolean✅--
Identity-change event✅⚠️ [4]-✅--
Remote-change event✅✅-n/a❌ [5]✅
Offline write queue✅--✅--
Size tiering✅-----
Binary / assets✅ [9]✅❌ [6]✅--
User-visible iCloud Drive files✅---✅-
Native end-to-end encryption✅-----
Batch operations✅-----
React hooks✅✅----
Encryption seam✅-----
Exported test harness✅--⚠️ [7]--
Mac Catalyst✅--⚠️--
Actively maintained✅✅✅❌ [8]❌ [5]❌

[1] expo-cloudkit's README: Android throws CloudKitNotSupportedError on every call.
[2] Google Drive support is text-based only.
[3] Via the Expo Modules API; pulls in expo-modules-core.
[4] Fires before JS binds the emitter, crashing with std::bad_function_call (SIGABRT); hit three times.
[5] One version ever shipped; the change-listener PR has sat open since February.
[6] Field type is string | number | null, so it can't hold binary data.
[7] A mock factory exists, but isn't exported or documented.
[8] No commits since April; the last four releases shipped with Swift that didn't compile.
[9] CKAsset on Apple platforms; CloudKit Web Services' upload-token protocol on Android/web, capped at 15 MB by CloudKit. Use googleDriveFiles for anything bigger; it chunks and resumes the same way.