Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Cap-go/capacitor-data-storage-sqlite

Capacitor Data Storage SQLite Plugin for IOS and Android
https://github.com/Cap-go/capacitor-data-storage-sqlite

Last synced: about 1 month ago
JSON representation

Capacitor Data Storage SQLite Plugin for IOS and Android

Awesome Lists containing this project

README

        



DATA STORAGE SQLITE


@capgo/capacitor-data-storage-sqlite




CAPACITOR 6




Note from the Owner


This Plugin has been transfered to Capgo org after his original creator @jepiqueau decide to retire.

We will foreer be thankful for the work he did.





Capacitor Data Storage SQlite Plugin is a custom Native Capacitor plugin providing a key-value permanent store for simple data of type string only to SQLite on IOS, Android and Electron platforms and to IndexDB for the Web platform.








## Maintainers

| Maintainer | GitHub | Social |
| ----------------- | ----------------------------------------- | ------ |
| Martin Donadieu | [riderx](https://github.com/riderx) | |
| Quéau Jean Pierre | [jepiqueau](https://github.com/jepiqueau) | |

## Browser Support

The plugin follows the guidelines from the `Capacitor Team`,

- [Capacitor Browser Support](https://capacitorjs.com/docs/v3/web#browser-support)

meaning that it will not work in IE11 without additional JavaScript transformations, e.g. with [Babel](https://babeljs.io/).

## Installation

```bash
npm install --save @capgo/capacitor-data-storage-sqlite
npx cap sync
```

- On iOS, no further steps are needed.

- On Android, no further steps are needed.

- On Web,
```bash
npm install --save localforage
```

- On Electron
```bash
npm install --save @capacitor-community/electron
npx cap add @capacitor-community/electron
```
Go to the Electron folder of your application

```bash
cd electron
npm install --save sqlite3
npm install --save-dev @types/sqlite3
npm run build
cd ..
npx cap sync @capacitor-community/electron
```

Then build YOUR_APPLICATION

```
npm run build
npx cap copy
npx cap copy @capacitor-community/electron
npx cap open ios
npx cap open android
npx cap open @capacitor-community/electron
ionic serve
```

## Configuration

No configuration required for this plugin

## Supported methods

| Name | Android | iOS | Electron | Web |
| :--------------------------- | :------ | :-- | :------- | :-- |
| openStore (non-encrypted DB) | ✅ | ✅ | ✅ | ✅ |
| openStore (encrypted DB) | ✅ | ✅ | ❌ | ❌ |
| closeStore | ✅ | ✅ | ✅ | ❌ |
| isStoreOpen | ✅ | ✅ | ✅ | ❌ |
| isStoreExists | ✅ | ✅ | ✅ | ❌ |
| deleteStore | ✅ | ✅ | ✅ | ❌ |
| setTable | ✅ | ✅ | ✅ | ✅ |
| set | ✅ | ✅ | ✅ | ✅ |
| get | ✅ | ✅ | ✅ | ✅ |
| iskey | ✅ | ✅ | ✅ | ✅ |
| keys | ✅ | ✅ | ✅ | ✅ |
| values | ✅ | ✅ | ✅ | ✅ |
| filtervalues | ✅ | ✅ | ✅ | ✅ |
| keysvalues | ✅ | ✅ | ✅ | ✅ |
| remove | ✅ | ✅ | ✅ | ✅ |
| clear | ✅ | ✅ | ✅ | ✅ |
| isTable | ✅ | ✅ | ✅ | ✅ |
| tables | ✅ | ✅ | ✅ | ✅ |
| deleteTable | ✅ | ✅ | ✅ | ❌ |
| isJsonValid | ✅ | ✅ | ✅ | ✅ |
| importFromJson | ✅ | ✅ | ✅ | ✅ |
| exportToJson | ✅ | ✅ | ✅ | ✅ |

## Documentation

- [API_Documentation](docs/API.md)

- [USAGE_Documentation](docs/USAGE.md)

## Applications demonstrating the use of the plugin

### Ionic/Angular

- [angular-data-storage-sqlite-app-starter](https://github.com/Cap-go/angular-data-storage-sqlite-app-starter)

### Ionic/React

- [react-data-storage-sqlite-app-starter](https://github.com/Cap-go/react-data-storage-sqlite-app-starter)

### React

- [react-datastoragesqlite-app](https://github.com/Cap-go/react-datastoragesqlite-app)

### Ionic/Vue

- [vue-data-storage-sqlite-app-starter](https://github.com/Cap-go/vue-data-storage-sqlite-app-starter)

### Vue

- [vue-datastoragesqlite-app](https://github.com/Cap-go/vue-datastoragesqlite-app)

## Usage

- [see capacitor documentation](https://capacitor.ionicframework.com/docs/getting-started/with-ionic)

- [see USAGE_Documentation](https://github.com/Cap-go/capacitor-data-storage-sqlite/blob/master/docs/USAGE.md)

## Dependencies

The IOS & Android code use SQLCipher allowing for database encryption.
The Android code is now based on `androidx.sqlite`. The database is not closed anymore after each transaction for performance improvement.
You must manage the `close` of the database before opening a new database.
The Web code use `localforage` package to store the datastore in the Browser.
The Electron code use `sqlite3`package

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Jean Pierre Quéau

💻

Matthew Burke

📖

Kevin van Schaijk

💻

Andy Garbett

📖

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

Retirement message of @jepiqueau -->





I have been dedicated to developing and maintaining this plugin for many years since the inception of Ionic Capacitor. Now, at 73+ years old, and with my MacBook Pro becoming obsolete for running Capacitor 6 for iOS, I have made the decision to cease maintenance of the plugin. If anyone wishes to take ownership of this plugin, they are welcome to do so.





It has been a great honor to be part of this development journey alongside the developer community. I am grateful to see many of you following me on this path and incorporating the plugin into your applications. Your comments and suggestions have motivated me to continuously improve it.





I have made this decision due to several family-related troubles that require my full attention and time. Therefore, I will not be stepping back. Thank you to all of you for your support.




End <--