Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/test-harness-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,25 @@ jobs:
- name: Select Xcode 26.2
run: sudo xcode-select -s "/Applications/Xcode_26.2.app/Contents/Developer"

- name: Start iOS simulator
run: |
set -euo pipefail

simulator="$(xcrun simctl list devices available --json | node -e '
const { readFileSync } = require("node:fs")
const runtime = `com.apple.CoreSimulator.SimRuntime.iOS-${process.env.IOS_SIMULATOR_OS.replaceAll(".", "-")}`
const devices = JSON.parse(readFileSync(0, "utf8")).devices[runtime] ?? []
const device = devices.find((candidate) => candidate.name === process.env.IOS_SIMULATOR_NAME && candidate.isAvailable)
if (!device) throw new Error(`Simulator ${process.env.IOS_SIMULATOR_NAME} on ${runtime} is unavailable`)
console.log(`${device.udid} ${device.state}`)
')"
read -r simulator_udid simulator_state <<< "$simulator"
echo "IOS_SIMULATOR_UDID=$simulator_udid" >> "$GITHUB_ENV"

if [[ "$simulator_state" == "Shutdown" ]]; then
xcrun simctl boot "$simulator_udid"
fi

- name: Install Pods
working-directory: example
run: bun pods
Expand All @@ -80,8 +99,14 @@ jobs:
build \
CODE_SIGNING_ALLOWED=NO

- name: Wait for iOS simulator
timeout-minutes: 10
run: xcrun simctl bootstatus "$IOS_SIMULATOR_UDID" -b

- name: Run react-native-harness on iOS
uses: callstackincubator/react-native-harness@v1.5.0
env:
HARNESS_DEBUG: "1"
with:
app: ios/build/Build/Products/Debug-iphonesimulator/NitroSQLiteExample.app
runner: ios
Expand Down
12 changes: 6 additions & 6 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions docs/releases/v10.1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
NitroSQLite 10.1.0 adds opt-in SQLite SEE encryption support and a Node.js mock backed by better-sqlite3. We've improved repeated batch execution and query-result conversion, upgraded bundled SQLite to 3.53.4, and enabled RTree indexes by default. This release includes the connection ownership fix shipped in 10.0.1, along with the newer changes on main.

## Encryption and Node.js testing

You can now pass an encryption key when opening a database built with the licensed SQLite Encryption Extension. SEE source is not bundled with NitroSQLite; enabling it requires your licensed source and a native rebuild. See the [encryption guide](https://sqlite.margelo.com/docs/guides/encryption) for setup and key handling. [#410](https://github.com/margelo/react-native-nitro-sqlite/pull/410)

The new `react-native-nitro-sqlite/mock` entry point runs against better-sqlite3 in Node.js. It supports independent connections, prepared statements, transactions, and batches for tests that need a real SQLite engine. Install better-sqlite3 separately when using the mock. [#395](https://github.com/margelo/react-native-nitro-sqlite/pull/395), [#420](https://github.com/margelo/react-native-nitro-sqlite/pull/420)

## Query performance and SQLite support

Grouped batch parameters reuse a prepared statement for repeated executions of the same SQL. Query results also avoid an extra native row copy during conversion to JavaScript. [#387](https://github.com/margelo/react-native-nitro-sqlite/pull/387), [#389](https://github.com/margelo/react-native-nitro-sqlite/pull/389)

Bundled SQLite is now 3.53.4, and its symbols are isolated from other SQLite engines linked into the same app. RTree is enabled by default for spatial and range indexes. See the [queries and indexes guide](https://sqlite.margelo.com/docs/concepts/queries-and-indexes). [#392](https://github.com/margelo/react-native-nitro-sqlite/pull/392), [#390](https://github.com/margelo/react-native-nitro-sqlite/pull/390), [#425](https://github.com/margelo/react-native-nitro-sqlite/pull/425)

## Reliability and upgrading

Connections close with the NitroSQLite owner that opened them, so replacing a runtime can reopen the same database. We've also improved transaction cleanup and error reporting, restored `undefined` parameters as SQL NULL, preserved embedded NUL bytes in text results, and corrected column metadata types. Android temporary files now use the app cache. The changelog below links each fix.

Update both packages to 10.1.0 if you use sqlite-vec, install Pods again on Apple platforms, and rebuild your native app. SQLite 3.53 changes floating-point-to-text conversion from 15 to 17 significant digits, so check code that depends on exact SQL text formatting. The TypeORM dependency is now 1.1.1. [#426](https://github.com/margelo/react-native-nitro-sqlite/pull/426)

The [documentation website](https://sqlite.margelo.com/docs) now includes guides and a generated API reference.
6 changes: 3 additions & 3 deletions example/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-nitro-sqlite-example",
"version": "10.0.0",
"version": "10.1.0",
"private": true,
"nitroSQLite": {
"threadSafe": true,
Expand Down Expand Up @@ -33,8 +33,8 @@
"react": "19.2.3",
"react-native": "0.87.1",
"react-native-nitro-modules": "*",
"react-native-nitro-sqlite": "10.0.0",
"react-native-nitro-sqlite-vec": "10.0.0",
"react-native-nitro-sqlite": "10.1.0",
"react-native-nitro-sqlite-vec": "10.1.0",
"react-native-quick-base64": "^3.0.0",
"react-native-quick-crypto": "^1.1.5",
"react-native-safe-area-context": "^5.10.0",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-nitro-sqlite-workspace",
"version": "10.0.0",
"version": "10.1.0",
"packageManager": "bun@1.3.1",
"private": "true",
"workspaces": [
Expand Down
4 changes: 2 additions & 2 deletions packages/react-native-nitro-sqlite-vec/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-nitro-sqlite-vec",
"version": "10.0.0",
"version": "10.1.0",
"description": "Vector search (sqlite-vec) for react-native-nitro-sqlite. Native sqlite-vec is statically linked into the core's single sqlite3 — no second SQLite, no runtime extension loading.",
"source": "./src/index",
"react-native": "./src/index",
Expand Down Expand Up @@ -46,7 +46,7 @@
"react-native-nitro-sqlite": ">=9.0.0"
},
"devDependencies": {
"react-native-nitro-sqlite": "10.0.0",
"react-native-nitro-sqlite": "10.1.0",
"typescript": "^5.8.3"
},
"jest": {
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native-nitro-sqlite/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-nitro-sqlite",
"version": "10.0.0",
"version": "10.1.0",
"description": "Fast SQLite library for React Native built using Nitro Modules",
"main": "./lib/module/index",
"module": "./lib/module/index",
Expand Down
Loading