Move to rusqlite 0.40 with the rest of the tree
Unblocked by Balanced Breakfast leaving sqlx-sqlite, which was the last thing
holding synckit at 0.39.
src-tauri declares libsqlite3-sys directly under cfg(target_os = "android"),
because system SQLite is not reachable through the NDK, and that pin has to move
with rusqlite or Android is the one target that fails long after everything else
is green.
r2d2_sqlite is available now and we are still not taking it: the connection
manager is ~30 lines in db-sqlite and would still have to set the
per-connection PRAGMAs by hand, so it buys nothing. Comment updated to say that
rather than the stale "requires 0.40".
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
3 files changed,
+17 insertions,
-17 deletions
| 2327 |
2327 |
|
|
| 2328 |
2328 |
|
[[package]]
|
| 2329 |
2329 |
|
name = "hashlink"
|
| 2330 |
|
- |
version = "0.11.1"
|
|
2330 |
+ |
version = "0.12.1"
|
| 2331 |
2331 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2332 |
|
- |
checksum = "824e001ac4f3012dd16a264bec811403a67ca9deb6c102fc5049b32c4574b35f"
|
|
2332 |
+ |
checksum = "32069d97bb81e38fa67eab65e3393bf804bb85969f2bc06bf13f64aef5aba248"
|
| 2333 |
2333 |
|
dependencies = [
|
| 2334 |
|
- |
"hashbrown 0.16.1",
|
|
2334 |
+ |
"hashbrown 0.17.1",
|
| 2335 |
2335 |
|
]
|
| 2336 |
2336 |
|
|
| 2337 |
2337 |
|
[[package]]
|
| 3173 |
3173 |
|
|
| 3174 |
3174 |
|
[[package]]
|
| 3175 |
3175 |
|
name = "libsqlite3-sys"
|
| 3176 |
|
- |
version = "0.37.0"
|
|
3176 |
+ |
version = "0.38.1"
|
| 3177 |
3177 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 3178 |
|
- |
checksum = "b1f111c8c41e7c61a49cd34e44c7619462967221a6443b0ec299e0ac30cfb9b1"
|
|
3178 |
+ |
checksum = "f6c19a05435c21ac299d71b6a9c13db3e3f47c520517d58990a462a1397a61db"
|
| 3179 |
3179 |
|
dependencies = [
|
| 3180 |
3180 |
|
"cc",
|
| 3181 |
3181 |
|
"pkg-config",
|
| 4895 |
4895 |
|
|
| 4896 |
4896 |
|
[[package]]
|
| 4897 |
4897 |
|
name = "rusqlite"
|
| 4898 |
|
- |
version = "0.39.0"
|
|
4898 |
+ |
version = "0.40.1"
|
| 4899 |
4899 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 4900 |
|
- |
checksum = "a0d2b0146dd9661bf67bb107c0bb2a55064d556eeb3fc314151b957f313bcd4e"
|
|
4900 |
+ |
checksum = "11438310b19e3109b6446c33d1ed5e889428cf2e278407bc7896bc4aaea43323"
|
| 4901 |
4901 |
|
dependencies = [
|
| 4902 |
4902 |
|
"bitflags 2.13.1",
|
| 4903 |
4903 |
|
"fallible-iterator",
|
| 29 |
29 |
|
tokio = { version = "1.49", features = ["rt-multi-thread", "macros"] }
|
| 30 |
30 |
|
|
| 31 |
31 |
|
# Database - SQLite via rusqlite (house standard; wiki `sql-library-standard`).
|
| 32 |
|
- |
# Pinned to 0.39 to share one `libsqlite3-sys` with synckit-client's SyncStore,
|
| 33 |
|
- |
# which opens its own connection to the same file. Two versions of that -sys
|
| 34 |
|
- |
# crate cannot co-link, so this pin moves only in lockstep with synckit.
|
| 35 |
|
- |
rusqlite = { version = "0.39", features = ["bundled"] }
|
| 36 |
|
- |
# Pooling. Deliberately r2d2 and not r2d2_sqlite: the latter requires rusqlite
|
| 37 |
|
- |
# 0.40, which is the pin above. The connection manager is ~30 lines in
|
| 38 |
|
- |
# db-sqlite and has to set the per-connection PRAGMAs by hand regardless.
|
|
32 |
+ |
# Kept in step with synckit-client's SyncStore, which opens its own connection to
|
|
33 |
+ |
# the same file. Two versions of `libsqlite3-sys` cannot co-link, so this pin
|
|
34 |
+ |
# moves only in lockstep with synckit. Both went to 0.40 on 2026-08-07.
|
|
35 |
+ |
rusqlite = { version = "0.40", features = ["bundled"] }
|
|
36 |
+ |
# Pooling. Still plain r2d2 rather than r2d2_sqlite: 0.40 makes the latter
|
|
37 |
+ |
# available, but the connection manager is ~30 lines in db-sqlite and would still
|
|
38 |
+ |
# have to set the per-connection PRAGMAs by hand, so it buys nothing now.
|
| 39 |
39 |
|
r2d2 = "0.8"
|
| 40 |
40 |
|
|
| 41 |
41 |
|
# Authentication
|
| 44 |
44 |
|
# Database
|
| 45 |
45 |
|
# The repository layer is rusqlite behind an r2d2 pool, and the SyncStore engine
|
| 46 |
46 |
|
# (synckit-client) owns a private rusqlite connection to the same SQLite file.
|
| 47 |
|
- |
# Same version + libsqlite3-sys 0.37 as the engine, so both bindings share one
|
|
47 |
+ |
# Same version + libsqlite3-sys 0.38 as the engine, so both bindings share one
|
| 48 |
48 |
|
# bundled SQLite.
|
| 49 |
|
- |
rusqlite = { version = "0.39", features = ["bundled"] }
|
|
49 |
+ |
rusqlite = { version = "0.40", features = ["bundled"] }
|
| 50 |
50 |
|
|
| 51 |
51 |
|
# Serialization
|
| 52 |
52 |
|
serde = { workspace = true }
|
| 141 |
141 |
|
|
| 142 |
142 |
|
# Android: bundle SQLite (system SQLite not accessible via NDK)
|
| 143 |
143 |
|
[target.'cfg(target_os = "android")'.dependencies]
|
| 144 |
|
- |
libsqlite3-sys = { version = "0.37", features = ["bundled"] }
|
|
144 |
+ |
libsqlite3-sys = { version = "0.38", features = ["bundled"] }
|
| 145 |
145 |
|
|
| 146 |
146 |
|
[dev-dependencies]
|
| 147 |
147 |
|
tempfile = "3"
|