Skip to main content

max / audiofiles

Bump rusqlite to 0.40.1 rusqlite 0.40 dropped the u64 FromSql impl (SQLite integers are i64). Three COUNT/SUM/file_size read sites now read i64 and widen to u64; all values are non-negative so the cast is safe. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-21 00:34 UTC
Commit: 9f5992693ae419f22adb4f8be5cc0451c6a690f9
Parent: aff34c5
4 files changed, +41 insertions, -20 deletions
M Cargo.lock +33 -16
@@ -2131,15 +2131,6 @@ dependencies = [
2131 2131
2132 2132 [[package]]
2133 2133 name = "hashbrown"
2134 - version = "0.14.5"
2135 - source = "registry+https://github.com/rust-lang/crates.io-index"
2136 - checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
2137 - dependencies = [
2138 - "ahash",
2139 - ]
2140 -
2141 - [[package]]
2142 - name = "hashbrown"
2143 2134 version = "0.16.1"
2144 2135 source = "registry+https://github.com/rust-lang/crates.io-index"
2145 2136 checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
@@ -2152,14 +2143,17 @@ name = "hashbrown"
2152 2143 version = "0.17.1"
2153 2144 source = "registry+https://github.com/rust-lang/crates.io-index"
2154 2145 checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
2146 + dependencies = [
2147 + "foldhash",
2148 + ]
2155 2149
2156 2150 [[package]]
2157 2151 name = "hashlink"
2158 - version = "0.9.1"
2152 + version = "0.12.1"
2159 2153 source = "registry+https://github.com/rust-lang/crates.io-index"
2160 - checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af"
2154 + checksum = "32069d97bb81e38fa67eab65e3393bf804bb85969f2bc06bf13f64aef5aba248"
2161 2155 dependencies = [
2162 - "hashbrown 0.14.5",
2156 + "hashbrown 0.17.1",
2163 2157 ]
2164 2158
2165 2159 [[package]]
@@ -2787,9 +2781,9 @@ dependencies = [
2787 2781
2788 2782 [[package]]
2789 2783 name = "libsqlite3-sys"
2790 - version = "0.30.1"
2784 + version = "0.38.1"
2791 2785 source = "registry+https://github.com/rust-lang/crates.io-index"
2792 - checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149"
2786 + checksum = "f6c19a05435c21ac299d71b6a9c13db3e3f47c520517d58990a462a1397a61db"
2793 2787 dependencies = [
2794 2788 "cc",
2795 2789 "pkg-config",
@@ -4367,6 +4361,16 @@ dependencies = [
4367 4361 ]
4368 4362
4369 4363 [[package]]
4364 + name = "rsqlite-vfs"
4365 + version = "0.1.1"
4366 + source = "registry+https://github.com/rust-lang/crates.io-index"
4367 + checksum = "c51c9ae4df8a7fba42103df5c621fa3c37eccf3a3c650879e90fc48b11cc192c"
4368 + dependencies = [
4369 + "hashbrown 0.16.1",
4370 + "thiserror 2.0.19",
4371 + ]
4372 +
4373 + [[package]]
4370 4374 name = "rubato"
4371 4375 version = "0.14.1"
4372 4376 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4380,9 +4384,9 @@ dependencies = [
4380 4384
4381 4385 [[package]]
4382 4386 name = "rusqlite"
4383 - version = "0.32.1"
4387 + version = "0.40.1"
4384 4388 source = "registry+https://github.com/rust-lang/crates.io-index"
4385 - checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e"
4389 + checksum = "11438310b19e3109b6446c33d1ed5e889428cf2e278407bc7896bc4aaea43323"
4386 4390 dependencies = [
4387 4391 "bitflags 2.13.1",
4388 4392 "fallible-iterator",
@@ -4390,6 +4394,7 @@ dependencies = [
4390 4394 "hashlink",
4391 4395 "libsqlite3-sys",
4392 4396 "smallvec",
4397 + "sqlite-wasm-rs",
4393 4398 ]
4394 4399
4395 4400 [[package]]
@@ -4888,6 +4893,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
4888 4893 checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
4889 4894
4890 4895 [[package]]
4896 + name = "sqlite-wasm-rs"
4897 + version = "0.5.5"
4898 + source = "registry+https://github.com/rust-lang/crates.io-index"
4899 + checksum = "dc3efc0da82635d7e1ced0053bbbfa8c7ab9645d0bf36ceb4f7127bb85315d75"
4900 + dependencies = [
4901 + "cc",
4902 + "js-sys",
4903 + "rsqlite-vfs",
4904 + "wasm-bindgen",
4905 + ]
4906 +
4907 + [[package]]
4891 4908 name = "stable_deref_trait"
4892 4909 version = "1.2.1"
4893 4910 source = "registry+https://github.com/rust-lang/crates.io-index"
M Cargo.toml +1 -1
@@ -16,7 +16,7 @@ egui = { version = "0.34", default-features = false, features = ["default_fonts"
16 16 egui_extras = { version = "0.34", default-features = false }
17 17 eframe = { version = "0.34", default-features = false, features = ["default_fonts", "glow"] }
18 18 cpal = "0.17"
19 - rusqlite = { version = "0.32", features = ["bundled", "functions"] }
19 + rusqlite = { version = "0.40", features = ["bundled", "functions"] }
20 20 thiserror = "2.0.18"
21 21 sha2 = "0.10.9"
22 22 symphonia = { version = "0.5.5", default-features = false, features = ["wav", "aiff", "mp3", "flac", "ogg", "vorbis", "pcm", "aac", "alac", "isomp4", "caf"] }
@@ -55,7 +55,8 @@ pub(super) fn build_sample_info(
55 55 .query_row(
56 56 "SELECT file_size FROM samples WHERE hash = ?1 AND deleted_at IS NULL",
57 57 [&item.hash],
58 - |row| row.get::<_, u64>(0),
58 + // rusqlite 0.40 dropped u64: FromSql; file_size is non-negative.
59 + |row| row.get::<_, i64>(0).map(|v| v as u64),
59 60 )
60 61 .unwrap_or_else(|_| {
61 62 // Fallback: read from store
@@ -1830,7 +1830,9 @@ impl Database {
1830 1830 let (count, total): (u64, u64) = self.conn.query_row(
1831 1831 "SELECT COUNT(*), COALESCE(SUM(file_size), 0) FROM live_samples",
1832 1832 [],
1833 - |row| Ok((row.get(0)?, row.get(1)?)),
1833 + // rusqlite 0.40 dropped u64: FromSql (SQLite integers are i64);
1834 + // COUNT/SUM are non-negative, so read i64 and widen.
1835 + |row| Ok((row.get::<_, i64>(0)? as u64, row.get::<_, i64>(1)? as u64)),
1834 1836 )?;
1835 1837 Ok((count, total))
1836 1838 }
@@ -1850,7 +1852,8 @@ impl Database {
1850 1852 WHERE vfs_id = ? AND sample_hash IS NOT NULL\
1851 1853 )",
1852 1854 [vfs_id],
1853 - |row| Ok((row.get(0)?, row.get(1)?)),
1855 + // rusqlite 0.40 dropped u64: FromSql; COUNT/SUM are non-negative.
1856 + |row| Ok((row.get::<_, i64>(0)? as u64, row.get::<_, i64>(1)? as u64)),
1854 1857 )?;
1855 1858 Ok((count, total))
1856 1859 }