Quick SQLite embeds the latest version of SQLite and provides a low-level JSI-backed API to execute SQL queries. By using an embedded SQLite you get access the latest security patches and latest features.
Performance metrics are intentionally not posted, anecdotic testimonies suggest anywhere between 2x and 5x speed improvement.
Gotchas
Javascript cannot represent integers larger than 53 bits, be careful when loading data if it came from other systems. Read more.
It's not possible to use a browser to debug a JSI app, use Flipper (for android Flipper also has SQLite Database explorer).
API
/** * All SQLite command results will have at least this status definition: * Specific statements or actions can bring more data, relative to its context * status: 0 or undefined for correct execution, 1 for error * message: if status === 1, here you will find error
I've managed to enable FTS5 and I'd like to share how to do that in your project.
For Android, the library needs to make some changes. So, it'd be helpful for library maintainers who would support accepting custom build flags.
iOS
Fortunately, CocoaPods allows you to customize the pods project settings via Podfile:
Replace the <SQLITE_FLAGS> part with flags you want to add.
For example, you could add SQLITE_ENABLE_FTS5=1 to GCC_PREPROCESSOR_DEFINITIONS to enable FTS5 in the iOS project.
Android
The native modules are compiled with CMake that reads CMakeLists.txt.