Skip to main content

max / audiofiles

Bump keyring to 4.1.5 keyring 4 removed the per-backend cargo features (apple-native / linux-native / windows-native); the platform backend is now selected automatically by target via the default v1 feature. API is v1-compatible, so no source changes. Note: v4 on Linux defaults to the secret-service (D-Bus) store, where keyring 3 linux-native used linux-keyutils, so Linux-stored credentials move to a different backend and need re-entry on first run after the bump. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-21 00:29 UTC
Commit: aff34c564008180fee25097279fcaa4c7c56c2da
Parent: 15c962c
2 files changed, +356 insertions, -20 deletions
M Cargo.lock +355 -19
@@ -28,6 +28,17 @@ dependencies = [
28 28 ]
29 29
30 30 [[package]]
31 + name = "aes"
32 + version = "0.8.4"
33 + source = "registry+https://github.com/rust-lang/crates.io-index"
34 + checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
35 + dependencies = [
36 + "cfg-if",
37 + "cipher",
38 + "cpufeatures 0.2.17",
39 + ]
40 +
41 + [[package]]
31 42 name = "ahash"
32 43 version = "0.8.12"
33 44 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -116,6 +127,17 @@ dependencies = [
116 127 ]
117 128
118 129 [[package]]
130 + name = "apple-native-keyring-store"
131 + version = "1.0.1"
132 + source = "registry+https://github.com/rust-lang/crates.io-index"
133 + checksum = "797f94b6a53d7d10b56dc18290e0d40a2158352f108bb4ff32350825081a9f29"
134 + dependencies = [
135 + "keyring-core",
136 + "log",
137 + "security-framework",
138 + ]
139 +
140 + [[package]]
119 141 name = "arboard"
120 142 version = "3.6.1"
121 143 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -160,6 +182,137 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
160 182 checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
161 183
162 184 [[package]]
185 + name = "async-broadcast"
186 + version = "0.7.2"
187 + source = "registry+https://github.com/rust-lang/crates.io-index"
188 + checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
189 + dependencies = [
190 + "event-listener",
191 + "event-listener-strategy",
192 + "futures-core",
193 + "pin-project-lite",
194 + ]
195 +
196 + [[package]]
197 + name = "async-channel"
198 + version = "2.5.0"
199 + source = "registry+https://github.com/rust-lang/crates.io-index"
200 + checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"
201 + dependencies = [
202 + "concurrent-queue",
203 + "event-listener-strategy",
204 + "futures-core",
205 + "pin-project-lite",
206 + ]
207 +
208 + [[package]]
209 + name = "async-executor"
210 + version = "1.14.0"
211 + source = "registry+https://github.com/rust-lang/crates.io-index"
212 + checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a"
213 + dependencies = [
214 + "async-task",
215 + "concurrent-queue",
216 + "fastrand",
217 + "futures-lite",
218 + "pin-project-lite",
219 + "slab",
220 + ]
221 +
222 + [[package]]
223 + name = "async-io"
224 + version = "2.6.0"
225 + source = "registry+https://github.com/rust-lang/crates.io-index"
226 + checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc"
227 + dependencies = [
228 + "autocfg",
229 + "cfg-if",
230 + "concurrent-queue",
231 + "futures-io",
232 + "futures-lite",
233 + "parking",
234 + "polling",
235 + "rustix 1.1.4",
236 + "slab",
237 + "windows-sys 0.61.2",
238 + ]
239 +
240 + [[package]]
241 + name = "async-lock"
242 + version = "3.4.2"
243 + source = "registry+https://github.com/rust-lang/crates.io-index"
244 + checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311"
245 + dependencies = [
246 + "event-listener",
247 + "event-listener-strategy",
248 + "pin-project-lite",
249 + ]
250 +
251 + [[package]]
252 + name = "async-process"
253 + version = "2.5.0"
254 + source = "registry+https://github.com/rust-lang/crates.io-index"
255 + checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
256 + dependencies = [
257 + "async-channel",
258 + "async-io",
259 + "async-lock",
260 + "async-signal",
261 + "async-task",
262 + "blocking",
263 + "cfg-if",
264 + "event-listener",
265 + "futures-lite",
266 + "rustix 1.1.4",
267 + ]
268 +
269 + [[package]]
270 + name = "async-recursion"
271 + version = "1.1.1"
272 + source = "registry+https://github.com/rust-lang/crates.io-index"
273 + checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
274 + dependencies = [
275 + "proc-macro2",
276 + "quote",
277 + "syn 2.0.119",
278 + ]
279 +
280 + [[package]]
281 + name = "async-signal"
282 + version = "0.2.14"
283 + source = "registry+https://github.com/rust-lang/crates.io-index"
284 + checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485"
285 + dependencies = [
286 + "async-io",
287 + "async-lock",
288 + "atomic-waker",
289 + "cfg-if",
290 + "futures-core",
291 + "futures-io",
292 + "rustix 1.1.4",
293 + "signal-hook-registry",
294 + "slab",
295 + "windows-sys 0.61.2",
296 + ]
297 +
298 + [[package]]
299 + name = "async-task"
300 + version = "4.7.1"
301 + source = "registry+https://github.com/rust-lang/crates.io-index"
302 + checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
303 +
304 + [[package]]
305 + name = "async-trait"
306 + version = "0.1.91"
307 + source = "registry+https://github.com/rust-lang/crates.io-index"
308 + checksum = "ae36dc4177970ef04fde5178d3e2429882def40e57a451f919c098f72baa6cec"
309 + dependencies = [
310 + "proc-macro2",
311 + "quote",
312 + "syn 3.0.2",
313 + ]
314 +
315 + [[package]]
163 316 name = "atk"
164 317 version = "0.18.2"
165 318 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -410,6 +563,15 @@ dependencies = [
410 563 ]
411 564
412 565 [[package]]
566 + name = "block-padding"
567 + version = "0.3.3"
568 + source = "registry+https://github.com/rust-lang/crates.io-index"
569 + checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
570 + dependencies = [
571 + "generic-array",
572 + ]
573 +
574 + [[package]]
413 575 name = "block2"
414 576 version = "0.5.1"
415 577 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -428,6 +590,19 @@ dependencies = [
428 590 ]
429 591
430 592 [[package]]
593 + name = "blocking"
594 + version = "1.6.2"
595 + source = "registry+https://github.com/rust-lang/crates.io-index"
596 + checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21"
597 + dependencies = [
598 + "async-channel",
599 + "async-task",
600 + "futures-io",
601 + "futures-lite",
602 + "piper",
603 + ]
604 +
605 + [[package]]
431 606 name = "bs1770"
432 607 version = "1.0.0"
433 608 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -554,6 +729,15 @@ dependencies = [
554 729 ]
555 730
556 731 [[package]]
732 + name = "cbc"
733 + version = "0.1.2"
734 + source = "registry+https://github.com/rust-lang/crates.io-index"
735 + checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
736 + dependencies = [
737 + "cipher",
738 + ]
739 +
740 + [[package]]
557 741 name = "cc"
558 742 version = "1.3.0"
559 743 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1198,6 +1382,12 @@ dependencies = [
1198 1382 ]
1199 1383
1200 1384 [[package]]
1385 + name = "endi"
1386 + version = "1.1.1"
1387 + source = "registry+https://github.com/rust-lang/crates.io-index"
1388 + checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099"
1389 +
1390 + [[package]]
1201 1391 name = "enum-map"
1202 1392 version = "2.7.3"
1203 1393 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1218,6 +1408,27 @@ dependencies = [
1218 1408 ]
1219 1409
1220 1410 [[package]]
1411 + name = "enumflags2"
1412 + version = "0.7.12"
1413 + source = "registry+https://github.com/rust-lang/crates.io-index"
1414 + checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef"
1415 + dependencies = [
1416 + "enumflags2_derive",
1417 + "serde",
1418 + ]
1419 +
1420 + [[package]]
1421 + name = "enumflags2_derive"
1422 + version = "0.7.12"
1423 + source = "registry+https://github.com/rust-lang/crates.io-index"
1424 + checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827"
1425 + dependencies = [
1426 + "proc-macro2",
1427 + "quote",
1428 + "syn 2.0.119",
1429 + ]
1430 +
1431 + [[package]]
1221 1432 name = "epaint"
1222 1433 version = "0.34.3"
1223 1434 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1277,6 +1488,27 @@ dependencies = [
1277 1488 ]
1278 1489
1279 1490 [[package]]
1491 + name = "event-listener"
1492 + version = "5.4.1"
1493 + source = "registry+https://github.com/rust-lang/crates.io-index"
1494 + checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
1495 + dependencies = [
1496 + "concurrent-queue",
1497 + "parking",
1498 + "pin-project-lite",
1499 + ]
1500 +
1501 + [[package]]
1502 + name = "event-listener-strategy"
1503 + version = "0.5.4"
1504 + source = "registry+https://github.com/rust-lang/crates.io-index"
1505 + checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
1506 + dependencies = [
1507 + "event-listener",
1508 + "pin-project-lite",
1509 + ]
1510 +
1511 + [[package]]
1280 1512 name = "extended"
1281 1513 version = "0.1.0"
1282 1514 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1461,6 +1693,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1461 1693 checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a"
1462 1694
1463 1695 [[package]]
1696 + name = "futures-lite"
1697 + version = "2.6.1"
1698 + source = "registry+https://github.com/rust-lang/crates.io-index"
1699 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad"
1700 + dependencies = [
1701 + "fastrand",
1702 + "futures-core",
1703 + "futures-io",
1704 + "parking",
1705 + "pin-project-lite",
1706 + ]
1707 +
1708 + [[package]]
1464 1709 name = "futures-macro"
1465 1710 version = "0.3.33"
1466 1711 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1936,12 +2181,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1936 2181 checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
1937 2182
1938 2183 [[package]]
2184 + name = "hex"
2185 + version = "0.4.3"
2186 + source = "registry+https://github.com/rust-lang/crates.io-index"
2187 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
2188 +
2189 + [[package]]
1939 2190 name = "hexf-parse"
1940 2191 version = "0.2.1"
1941 2192 source = "registry+https://github.com/rust-lang/crates.io-index"
1942 2193 checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
1943 2194
1944 2195 [[package]]
2196 + name = "hkdf"
2197 + version = "0.12.4"
2198 + source = "registry+https://github.com/rust-lang/crates.io-index"
2199 + checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
2200 + dependencies = [
2201 + "hmac",
2202 + ]
2203 +
2204 + [[package]]
2205 + name = "hmac"
2206 + version = "0.12.1"
2207 + source = "registry+https://github.com/rust-lang/crates.io-index"
2208 + checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
2209 + dependencies = [
2210 + "digest",
2211 + ]
2212 +
2213 + [[package]]
1945 2214 name = "hound"
1946 2215 version = "3.5.1"
1947 2216 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2239,6 +2508,7 @@ version = "0.1.4"
2239 2508 source = "registry+https://github.com/rust-lang/crates.io-index"
2240 2509 checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
2241 2510 dependencies = [
2511 + "block-padding",
2242 2512 "generic-array",
2243 2513 ]
2244 2514
@@ -2404,17 +2674,23 @@ dependencies = [
2404 2674
2405 2675 [[package]]
2406 2676 name = "keyring"
2407 - version = "3.6.3"
2677 + version = "4.1.5"
2408 2678 source = "registry+https://github.com/rust-lang/crates.io-index"
2409 - checksum = "eebcc3aff044e5944a8fbaf69eb277d11986064cba30c468730e8b9909fb551c"
2679 + checksum = "0298a59b384c540e408a600c8b375a09b49c3f97debc080e2c30675d79a6368a"
2680 + dependencies = [
2681 + "apple-native-keyring-store",
2682 + "keyring-core",
2683 + "windows-native-keyring-store",
2684 + "zbus-secret-service-keyring-store",
2685 + ]
2686 +
2687 + [[package]]
2688 + name = "keyring-core"
2689 + version = "1.0.0"
2690 + source = "registry+https://github.com/rust-lang/crates.io-index"
2691 + checksum = "fb1e621458ca9c51aa110bd0339d4751a056b9576bf1253aee1aa560dda0fc9d"
2410 2692 dependencies = [
2411 - "byteorder",
2412 - "linux-keyutils",
2413 2693 "log",
2414 - "security-framework 2.11.1",
2415 - "security-framework 3.7.0",
2416 - "windows-sys 0.60.2",
2417 - "zeroize",
2418 2694 ]
2419 2695
2420 2696 [[package]]
@@ -2546,16 +2822,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2546 2822 checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4"
2547 2823
2548 2824 [[package]]
2549 - name = "linux-keyutils"
2550 - version = "0.2.5"
2551 - source = "registry+https://github.com/rust-lang/crates.io-index"
2552 - checksum = "83270a18e9f90d0707c41e9f35efada77b64c0e6f3f1810e71c8368a864d5590"
2553 - dependencies = [
2554 - "bitflags 2.13.1",
2555 - "libc",
2556 - ]
2557 -
2558 - [[package]]
2559 2825 name = "linux-raw-sys"
2560 2826 version = "0.4.15"
2561 2827 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2769,7 +3035,7 @@ dependencies = [
2769 3035 "openssl-probe",
2770 3036 "openssl-sys",
2771 3037 "schannel",
2772 - "security-framework 3.7.0",
3038 + "security-framework",
2773 3039 "security-framework-sys",
2774 3040 "tempfile",
2775 3041 ]
@@ -2829,6 +3095,30 @@ dependencies = [
2829 3095 ]
2830 3096
2831 3097 [[package]]
3098 + name = "num"
3099 + version = "0.4.3"
3100 + source = "registry+https://github.com/rust-lang/crates.io-index"
3101 + checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
3102 + dependencies = [
3103 + "num-bigint",
3104 + "num-complex",
3105 + "num-integer",
3106 + "num-iter",
3107 + "num-rational",
3108 + "num-traits",
3109 + ]
3110 +
3111 + [[package]]
3112 + name = "num-bigint"
3113 + version = "0.4.8"
3114 + source = "registry+https://github.com/rust-lang/crates.io-index"
3115 + checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367"
3116 + dependencies = [
3117 + "num-integer",
3118 + "num-traits",
3119 + ]
3120 +
3121 + [[package]]
2832 3122 name = "num-complex"
2833 3123 version = "0.4.6"
2834 3124 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2858,6 +3148,27 @@ dependencies = [
2858 3148 ]
2859 3149
2860 3150 [[package]]
3151 + name = "num-iter"
3152 + version = "0.1.46"
3153 + source = "registry+https://github.com/rust-lang/crates.io-index"
3154 + checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b"
3155 + dependencies = [
3156 + "num-integer",
3157 + "num-traits",
3158 + ]
3159 +
3160 + [[package]]
3161 + name = "num-rational"
3162 + version = "0.4.2"
3163 + source = "registry+https://github.com/rust-lang/crates.io-index"
3164 + checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
3165 + dependencies = [
3166 + "num-bigint",
3167 + "num-integer",
3168 + "num-traits",
3169 + ]
3170 +
3171 + [[package]]
2861 3172 name = "num-traits"
2862 3173 version = "0.2.19"
2863 3174 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3385,6 +3696,16 @@ dependencies = [
3385 3696 ]
3386 3697
3387 3698 [[package]]
3699 + name = "ordered-stream"
3700 + version = "0.2.0"
3701 + source = "registry+https://github.com/rust-lang/crates.io-index"
3702 + checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
3703 + dependencies = [
3704 + "futures-core",
3705 + "pin-project-lite",
3706 + ]
3707 +
3708 + [[package]]
3388 3709 name = "pango"
3389 3710 version = "0.18.3"
3390 3711 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3410,6 +3731,12 @@ dependencies = [
3410 3731 ]
3411 3732
3412 3733 [[package]]
3734 + name = "parking"
3735 + version = "2.2.1"
3736 + source = "registry+https://github.com/rust-lang/crates.io-index"
3737 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
3738 +
3739 + [[package]]
3413 3740 name = "parking_lot"
3414 3741 version = "0.12.5"
3415 3742 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3489,6 +3816,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
3489 3816 checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
3490 3817
3491 3818 [[package]]
3819 + name = "piper"
3820 + version = "0.2.5"
3821 + source = "registry+https://github.com/rust-lang/crates.io-index"
3822 + checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1"
3823 + dependencies = [
3824 + "atomic-waker",
3825 + "fastrand",
3826 + "futures-io",
3827 + ]
Lines truncated
@@ -26,7 +26,7 @@ chrono = { workspace = true }
26 26 midir = { workspace = true }
27 27 rfd = { workspace = true }
28 28 toml = { workspace = true }
29 - keyring = { version = "3", features = ["apple-native", "linux-native", "windows-native"] }
29 + keyring = { version = "4" }
30 30
31 31 [dev-dependencies]
32 32 tempfile = "3"