@tolutronics/capacitor-sqlite
v7.0.0
Published
SQLite Storage of key/value strings pair
Downloads
3
Maintainers
Readme
Introduction
Note: This is a fork of the @capacitor-community/capacitor-data-storage-sqlite plugin (originally created by Jean Pierre Quéau and maintained by Capgo). The fork was created to:
- Maintain Capacitor 7 compatibility: Ensure the plugin works seamlessly with the latest Capacitor versions
- Active development and maintenance: Provide timely updates and bug fixes
- Enhanced stability: Improve reliability across all platforms (iOS, Android, Web, Electron)
- Community support: Offer faster response to issues and feature requests
- Custom improvements: Add features and optimizations specific to project requirements
Maintainers
| Maintainer | GitHub | Social | | ------------- | ------------------------------------------- | ------ | | Tolutronics | tolutronics | |
Key Features
- 🔐 Encrypted Storage: SQLCipher support for encrypted databases (iOS & Android)
- 🌐 Cross-Platform: Works on iOS, Android, Electron, and Web
- ⚡ High Performance: SQLite-based storage for fast read/write operations
- 💾 Persistent Storage: Data persists across app restarts and updates
- 📦 Simple Key-Value API: Easy-to-use string-based storage interface
- 🔄 Import/Export: JSON import/export functionality for data migration
- 📊 Multiple Tables: Support for multiple tables within a database
- 🎯 Type-Safe: Full TypeScript support with detailed type definitions
- 🔒 Transaction Safety: Improved transaction handling for data integrity
- 📱 Web Support: LocalForage-based implementation for web platform
Recent Updates
Version 6.0.x (Latest - Capacitor 7)
- Capacitor 7 Support: Full compatibility with Capacitor 7 framework
- Dependency Updates: Updated to latest SQLCipher and androidx.sqlite versions
- Performance Improvements: Database connections optimized for better performance
- Enhanced Stability: Multiple bug fixes for Android single quotes handling
- CI/CD Improvements: Automated testing and deployment pipelines
- Build System Updates: Modernized build scripts and formatting
Version 5.0.x (Capacitor 5)
- Capacitor 5 Compatibility: Updated for Capacitor 5 framework
- Android modernization: Migrated to androidx.sqlite for better compatibility
- Improved Error Handling: Enhanced try-catch error handling across platforms
Version 4.x and Earlier
- Database Encryption: SQLCipher integration for iOS and Android
- Import/Export Features: JSON-based data import/export functionality
- Multi-table Support: Added support for multiple tables per database
- Electron Support: sqlite3-based implementation for Electron platform
- Web Platform: LocalForage integration for browser storage
Browser Support
The plugin follows the guidelines from the Capacitor Team,
meaning that it will not work in IE11 without additional JavaScript transformations, e.g. with Babel.
Installation
npm install --save @tolutronics/capacitor-sqlite
npx cap syncOn iOS, no further steps are needed.
On Android, no further steps are needed.
On Web,
npm install --save localforage- On Electron
npm install --save @capacitor-community/electron
npx cap add @capacitor-community/electronGo to the Electron folder of your application
cd electron
npm install --save sqlite3
npm install --save-dev @types/sqlite3
npm run build
cd ..
npx cap sync @capacitor-community/electronThen 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 serveConfiguration
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
Applications demonstrating the use of the plugin
Ionic/Angular
Ionic/React
React
Ionic/Vue
Vue
Usage
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 sqlite3package
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
Acknowledgments
This plugin is a fork of @capacitor-community/capacitor-data-storage-sqlite. We are deeply grateful to:
- Jean Pierre Quéau (@jepiqueau) - Original creator and architect of this excellent plugin
- Capgo Team - Maintainers who kept the plugin updated and stable
- All original contributors - Listed below in the contributors section
Their outstanding work created the foundation for this fork, and we continue to benefit from their expertise and dedication to the Capacitor community.
