{"id":21868479,"url":"https://github.com/jwallet/expo-sqlite-storage","last_synced_at":"2025-08-02T13:42:04.592Z","repository":{"id":142759817,"uuid":"612218937","full_name":"jwallet/expo-sqlite-storage","owner":"jwallet","description":"React Native Expo SQLite module updated to support JSON extension using requery.sqlite-android library. Compatible with RxDB Premium","archived":false,"fork":false,"pushed_at":"2023-12-22T01:27:35.000Z","size":1751,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-24T14:20:21.224Z","etag":null,"topics":["expo","json","rxdb","sqlite","websql"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/expo-sqlite-storage","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwallet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-10T13:06:40.000Z","updated_at":"2023-10-17T21:33:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"3ef80e8e-371e-4ac6-9315-1cc4c95b0890","html_url":"https://github.com/jwallet/expo-sqlite-storage","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwallet%2Fexpo-sqlite-storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwallet%2Fexpo-sqlite-storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwallet%2Fexpo-sqlite-storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwallet%2Fexpo-sqlite-storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwallet","download_url":"https://codeload.github.com/jwallet/expo-sqlite-storage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248975319,"owners_count":21192197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expo","json","rxdb","sqlite","websql"],"created_at":"2024-11-28T05:13:48.797Z","updated_at":"2025-04-14T22:41:01.390Z","avatar_url":"https://github.com/jwallet.png","language":"TypeScript","readme":"# Expo SQLite Storage\n\n[![ios](https://img.shields.io/badge/ios-%E2%9C%94%EF%B8%8F-white)](#)\n[![android](https://img.shields.io/badge/android-%E2%9C%94%EF%B8%8F-white)](#)\n[![web](https://img.shields.io/badge/web-%E2%9D%8C-white)](#)\n[![expo](https://img.shields.io/badge/expo-%E2%9C%94%EF%B8%8F-white)](#)\n[![expo go](https://img.shields.io/badge/expo%20go-%E2%9D%8C-white)](#)\n[![expo-sqlite](https://img.shields.io/badge/expo/expo--sqlite-11.1.1-black)](https://github.com/expo/expo/tree/main/packages/expo-sqlite)\n[![sqlite-android](https://img.shields.io/badge/requery/sqlite--android-3.41.1-black)](https://github.com/requery/sqlite-android)\n\n\n\u003e [!IMPORTANT]\n\u003e This package will become useless once Expo SDK 50 is released.\n\u003e The new SDK introduces changes to their official `expo-sqlite` and they upgraded to a more recent SQLite version that will support JSON function such as `json_extract`.\n\n\nImplements the original [expo-sqlite](https://github.com/expo/expo/tree/main/packages/expo-sqlite) with an updated version of android.database.sqlite from [requery.sqlite-android](https://github.com/requery/sqlite-android) which adds support for:\n\n- JSON1 extension\n- Common Table expressions\n- Indexes on expressions\n- Full Text Search 5\n- Generated Columns\n- DROP COLUMN support\n\nThis cannot be used in Expo GO, see the related [error](#error) section.\n\n### RxDB Premium compatible\n\nIt's compatible with [RxDB](https://github.com/pubkey/rxdb) Premium [SQLite](https://rxdb.info/rx-storage-sqlite.html) storage:\n\n```js\nimport {\n  getRxStorageSQLite,\n  getSQLiteBasicsExpoSQLite,\n} from \"rxdb-premium/plugins/storage-sqlite\";\nimport * as ExpoSqliteStorage from \"expo-sqlite-storage\";\nimport { createRxDatabase } from \"rxdb\";\n\nconst storage = getRxStorageSQLite({\n  sqliteBasics: getSQLiteBasicsExpoSQLite(ExpoSqliteStorage.openDatabase),\n});\n\nconst db = await createRxDatabase({\n  name: storage.name,\n  storage,\n  multiInstance: false,\n  ignoreDuplicate: true,\n});\n```\n\n| iOS                                                  | Android                                                  |\n| :--------------------------------------------------- | :------------------------------------------------------- |\n| \u003cimg width=\"440\" alt=\"image\" src=\"./assets/ios.png\"\u003e | \u003cimg width=\"400\" alt=\"image\" src=\"./assets/android.png\"\u003e |\n\n# Installation in managed Expo project\n\n### Add the package to your npm dependencies\n\n```\nnpm install expo-sqlite-storage\n```\n\nor\n\n```\nyarn add expo-sqlite-storage\n```\n\nbuild your native apps\n\n```\nnpx expo run:android|ios\n```\n\nrun only the app\n\n```\nnpx expo start --dev-client\n```\n\n## Error\n\n#### {\"name\":\"TypeError\",\"message\":\"null is not an object (evaluating 'SQLiteDatabase.exec')\n\nWill not work inside **Expo GO** until the Expo team [updates their SQLite database](https://expo.canny.io/feature-requests/p/expo-sqlite-ship-newer-sqlite3-version-on-android) to a more recent version.\n\n# Installation in bare React Native projects\n\nFor bare React Native projects, you must ensure that you have [installed and configured the `expo` package](https://docs.expo.dev/bare/installing-expo-modules/) before continuing.\n\n### Add the package to your npm dependencies\n\n```\nnpm install expo-sqlite-storage\n```\n\nor\n\n```\nyarn add expo-sqlite-storage\n```\n\n### Configure for iOS\n\nReact-Native above 0.60:\n\nRun `npx pod-install` after installing the npm package.\n\n### Configure for Android\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwallet%2Fexpo-sqlite-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwallet%2Fexpo-sqlite-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwallet%2Fexpo-sqlite-storage/lists"}