atagen

headroom

public
Star0
Watch0

Commit b449da897c0f

tarball

atagen <boss@atagen.co>2026-06-02 05:09 UTC

7 files changed+5228-0
scaffold cargo workspace, nix dev shell, and docs
Added file: .gitignore+6 additions
@@ -0,0 +1,6 @@
1+/target
2+/result
3+**/*.rs.bk
4+Cargo.lock.bak
5+.direnv/
6+.envrc
Added file: Cargo.lock+4646 additions
@@ -0,0 +1,4646 @@
1+# This file is automatically @generated by Cargo.
2+# It is not intended for manual editing.
3+version = 4
4+
5+[[package]]
6+name = "ab_glyph"
7+version = "0.2.32"
8+source = "registry+https://github.com/rust-lang/crates.io-index"
9+checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2"
10+dependencies = [
11+ "ab_glyph_rasterizer",
12+ "owned_ttf_parser",
13+]
14+
15+[[package]]
16+name = "ab_glyph_rasterizer"
17+version = "0.1.10"
18+source = "registry+https://github.com/rust-lang/crates.io-index"
19+checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618"
20+
21+[[package]]
22+name = "ahash"
23+version = "0.8.12"
24+source = "registry+https://github.com/rust-lang/crates.io-index"
25+checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
26+dependencies = [
27+ "cfg-if",
28+ "getrandom",
29+ "once_cell",
30+ "version_check",
31+ "zerocopy",
32+]
33+
34+[[package]]
35+name = "aho-corasick"
36+version = "1.1.4"
37+source = "registry+https://github.com/rust-lang/crates.io-index"
38+checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
39+dependencies = [
40+ "memchr",
41+]
42+
43+[[package]]
44+name = "allocator-api2"
45+version = "0.2.21"
46+source = "registry+https://github.com/rust-lang/crates.io-index"
47+checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
48+
49+[[package]]
50+name = "android-activity"
51+version = "0.6.1"
52+source = "registry+https://github.com/rust-lang/crates.io-index"
53+checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd"
54+dependencies = [
55+ "android-properties",
56+ "bitflags 2.11.1",
57+ "cc",
58+ "jni",
59+ "libc",
60+ "log",
61+ "ndk",
62+ "ndk-context",
63+ "ndk-sys",
64+ "num_enum",
65+ "thiserror 2.0.18",
66+]
67+
68+[[package]]
69+name = "android-properties"
70+version = "0.2.2"
71+source = "registry+https://github.com/rust-lang/crates.io-index"
72+checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
73+
74+[[package]]
75+name = "android_system_properties"
76+version = "0.1.5"
77+source = "registry+https://github.com/rust-lang/crates.io-index"
78+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
79+dependencies = [
80+ "libc",
81+]
82+
83+[[package]]
84+name = "anes"
85+version = "0.1.6"
86+source = "registry+https://github.com/rust-lang/crates.io-index"
87+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
88+
89+[[package]]
90+name = "annotate-snippets"
91+version = "0.9.2"
92+source = "registry+https://github.com/rust-lang/crates.io-index"
93+checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e"
94+dependencies = [
95+ "unicode-width 0.1.14",
96+ "yansi-term",
97+]
98+
99+[[package]]
100+name = "anstream"
101+version = "1.0.0"
102+source = "registry+https://github.com/rust-lang/crates.io-index"
103+checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d"
104+dependencies = [
105+ "anstyle",
106+ "anstyle-parse",
107+ "anstyle-query",
108+ "anstyle-wincon",
109+ "colorchoice",
110+ "is_terminal_polyfill",
111+ "utf8parse",
112+]
113+
114+[[package]]
115+name = "anstyle"
116+version = "1.0.14"
117+source = "registry+https://github.com/rust-lang/crates.io-index"
118+checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
119+
120+[[package]]
121+name = "anstyle-parse"
122+version = "1.0.0"
123+source = "registry+https://github.com/rust-lang/crates.io-index"
124+checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e"
125+dependencies = [
126+ "utf8parse",
127+]
128+
129+[[package]]
130+name = "anstyle-query"
131+version = "1.1.5"
132+source = "registry+https://github.com/rust-lang/crates.io-index"
133+checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
134+dependencies = [
135+ "windows-sys 0.61.2",
136+]
137+
138+[[package]]
139+name = "anstyle-wincon"
140+version = "3.0.11"
141+source = "registry+https://github.com/rust-lang/crates.io-index"
142+checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
143+dependencies = [
144+ "anstyle",
145+ "once_cell_polyfill",
146+ "windows-sys 0.61.2",
147+]
148+
149+[[package]]
150+name = "anyhow"
151+version = "1.0.102"
152+source = "registry+https://github.com/rust-lang/crates.io-index"
153+checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
154+
155+[[package]]
156+name = "arrayref"
157+version = "0.3.9"
158+source = "registry+https://github.com/rust-lang/crates.io-index"
159+checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
160+
161+[[package]]
162+name = "arrayvec"
163+version = "0.7.6"
164+source = "registry+https://github.com/rust-lang/crates.io-index"
165+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
166+
167+[[package]]
168+name = "ash"
169+version = "0.38.0+1.3.281"
170+source = "registry+https://github.com/rust-lang/crates.io-index"
171+checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f"
172+dependencies = [
173+ "libloading",
174+]
175+
176+[[package]]
177+name = "assert_no_alloc"
178+version = "1.1.2"
179+source = "registry+https://github.com/rust-lang/crates.io-index"
180+checksum = "55ca83137a482d61d916ceb1eba52a684f98004f18e0cafea230fe5579c178a3"
181+
182+[[package]]
183+name = "async-channel"
184+version = "2.5.0"
185+source = "registry+https://github.com/rust-lang/crates.io-index"
186+checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"
187+dependencies = [
188+ "concurrent-queue",
189+ "event-listener-strategy",
190+ "futures-core",
191+ "pin-project-lite",
192+]
193+
194+[[package]]
195+name = "async-executor"
196+version = "1.14.0"
197+source = "registry+https://github.com/rust-lang/crates.io-index"
198+checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a"
199+dependencies = [
200+ "async-task",
201+ "concurrent-queue",
202+ "fastrand",
203+ "futures-lite",
204+ "pin-project-lite",
205+ "slab",
206+]
207+
208+[[package]]
209+name = "async-fs"
210+version = "2.2.0"
211+source = "registry+https://github.com/rust-lang/crates.io-index"
212+checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5"
213+dependencies = [
214+ "async-lock",
215+ "blocking",
216+ "futures-lite",
217+]
218+
219+[[package]]
220+name = "async-io"
221+version = "2.6.0"
222+source = "registry+https://github.com/rust-lang/crates.io-index"
223+checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc"
224+dependencies = [
225+ "autocfg",
226+ "cfg-if",
227+ "concurrent-queue",
228+ "futures-io",
229+ "futures-lite",
230+ "parking",
231+ "polling",
232+ "rustix 1.1.4",
233+ "slab",
234+ "windows-sys 0.61.2",
235+]
236+
237+[[package]]
238+name = "async-lock"
239+version = "3.4.2"
240+source = "registry+https://github.com/rust-lang/crates.io-index"
241+checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311"
242+dependencies = [
243+ "event-listener",
244+ "event-listener-strategy",
245+ "pin-project-lite",
246+]
247+
248+[[package]]
249+name = "async-net"
250+version = "2.0.0"
251+source = "registry+https://github.com/rust-lang/crates.io-index"
252+checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7"
253+dependencies = [
254+ "async-io",
255+ "blocking",
256+ "futures-lite",
257+]
258+
259+[[package]]
260+name = "async-process"
261+version = "2.5.0"
262+source = "registry+https://github.com/rust-lang/crates.io-index"
263+checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
264+dependencies = [
265+ "async-channel",
266+ "async-io",
267+ "async-lock",
268+ "async-signal",
269+ "async-task",
270+ "blocking",
271+ "cfg-if",
272+ "event-listener",
273+ "futures-lite",
274+ "rustix 1.1.4",
275+]
276+
277+[[package]]
278+name = "async-signal"
279+version = "0.2.14"
280+source = "registry+https://github.com/rust-lang/crates.io-index"
281+checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485"
282+dependencies = [
283+ "async-io",
284+ "async-lock",
285+ "atomic-waker",
286+ "cfg-if",
287+ "futures-core",
288+ "futures-io",
289+ "rustix 1.1.4",
290+ "signal-hook-registry",
291+ "slab",
292+ "windows-sys 0.61.2",
293+]
294+
295+[[package]]
296+name = "async-task"
297+version = "4.7.1"
298+source = "registry+https://github.com/rust-lang/crates.io-index"
299+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
300+
301+[[package]]
302+name = "atomic-waker"
303+version = "1.1.2"
304+source = "registry+https://github.com/rust-lang/crates.io-index"
305+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
306+
307+[[package]]
308+name = "autocfg"
309+version = "1.5.1"
310+source = "registry+https://github.com/rust-lang/crates.io-index"
311+checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
312+
313+[[package]]
314+name = "bindgen"
315+version = "0.69.5"
316+source = "registry+https://github.com/rust-lang/crates.io-index"
317+checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
318+dependencies = [
319+ "annotate-snippets",
320+ "bitflags 2.11.1",
321+ "cexpr",
322+ "clang-sys",
323+ "itertools 0.12.1",
324+ "lazy_static",
325+ "lazycell",
326+ "proc-macro2",
327+ "quote",
328+ "regex",
329+ "rustc-hash 1.1.0",
330+ "shlex",
331+ "syn",
332+]
333+
334+[[package]]
335+name = "bit-set"
336+version = "0.8.0"
337+source = "registry+https://github.com/rust-lang/crates.io-index"
338+checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
339+dependencies = [
340+ "bit-vec",
341+]
342+
343+[[package]]
344+name = "bit-vec"
345+version = "0.8.0"
346+source = "registry+https://github.com/rust-lang/crates.io-index"
347+checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
348+
349+[[package]]
350+name = "bitflags"
351+version = "1.3.2"
352+source = "registry+https://github.com/rust-lang/crates.io-index"
353+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
354+
355+[[package]]
356+name = "bitflags"
357+version = "2.11.1"
358+source = "registry+https://github.com/rust-lang/crates.io-index"
359+checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
360+
361+[[package]]
362+name = "block"
363+version = "0.1.6"
364+source = "registry+https://github.com/rust-lang/crates.io-index"
365+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
366+
367+[[package]]
368+name = "block2"
369+version = "0.5.1"
370+source = "registry+https://github.com/rust-lang/crates.io-index"
371+checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
372+dependencies = [
373+ "objc2 0.5.2",
374+]
375+
376+[[package]]
377+name = "blocking"
378+version = "1.6.2"
379+source = "registry+https://github.com/rust-lang/crates.io-index"
380+checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21"
381+dependencies = [
382+ "async-channel",
383+ "async-task",
384+ "futures-io",
385+ "futures-lite",
386+ "piper",
387+]
388+
389+[[package]]
390+name = "bumpalo"
391+version = "3.20.3"
392+source = "registry+https://github.com/rust-lang/crates.io-index"
393+checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
394+
395+[[package]]
396+name = "bytemuck"
397+version = "1.25.0"
398+source = "registry+https://github.com/rust-lang/crates.io-index"
399+checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
400+dependencies = [
401+ "bytemuck_derive",
402+]
403+
404+[[package]]
405+name = "bytemuck_derive"
406+version = "1.10.2"
407+source = "registry+https://github.com/rust-lang/crates.io-index"
408+checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff"
409+dependencies = [
410+ "proc-macro2",
411+ "quote",
412+ "syn",
413+]
414+
415+[[package]]
416+name = "bytes"
417+version = "1.11.1"
418+source = "registry+https://github.com/rust-lang/crates.io-index"
419+checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
420+
421+[[package]]
422+name = "calloop"
423+version = "0.13.0"
424+source = "registry+https://github.com/rust-lang/crates.io-index"
425+checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec"
426+dependencies = [
427+ "bitflags 2.11.1",
428+ "log",
429+ "polling",
430+ "rustix 0.38.44",
431+ "slab",
432+ "thiserror 1.0.69",
433+]
434+
435+[[package]]
436+name = "calloop"
437+version = "0.14.4"
438+source = "registry+https://github.com/rust-lang/crates.io-index"
439+checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7"
440+dependencies = [
441+ "bitflags 2.11.1",
442+ "polling",
443+ "rustix 1.1.4",
444+ "slab",
445+ "tracing",
446+]
447+
448+[[package]]
449+name = "calloop-wayland-source"
450+version = "0.3.0"
451+source = "registry+https://github.com/rust-lang/crates.io-index"
452+checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20"
453+dependencies = [
454+ "calloop 0.13.0",
455+ "rustix 0.38.44",
456+ "wayland-backend",
457+ "wayland-client",
458+]
459+
460+[[package]]
461+name = "calloop-wayland-source"
462+version = "0.4.1"
463+source = "registry+https://github.com/rust-lang/crates.io-index"
464+checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa"
465+dependencies = [
466+ "calloop 0.14.4",
467+ "rustix 1.1.4",
468+ "wayland-backend",
469+ "wayland-client",
470+]
471+
472+[[package]]
473+name = "cassowary"
474+version = "0.3.0"
475+source = "registry+https://github.com/rust-lang/crates.io-index"
476+checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
477+
478+[[package]]
479+name = "cast"
480+version = "0.3.0"
481+source = "registry+https://github.com/rust-lang/crates.io-index"
482+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
483+
484+[[package]]
485+name = "castaway"
486+version = "0.2.4"
487+source = "registry+https://github.com/rust-lang/crates.io-index"
488+checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a"
489+dependencies = [
490+ "rustversion",
491+]
492+
493+[[package]]
494+name = "cc"
495+version = "1.2.62"
496+source = "registry+https://github.com/rust-lang/crates.io-index"
497+checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
498+dependencies = [
499+ "find-msvc-tools",
500+ "jobserver",
501+ "libc",
502+ "shlex",
503+]
504+
505+[[package]]
506+name = "cexpr"
507+version = "0.6.0"
508+source = "registry+https://github.com/rust-lang/crates.io-index"
509+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
510+dependencies = [
511+ "nom",
512+]
513+
514+[[package]]
515+name = "cfg-expr"
516+version = "0.15.8"
517+source = "registry+https://github.com/rust-lang/crates.io-index"
518+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
519+dependencies = [
520+ "smallvec",
521+ "target-lexicon",
522+]
523+
524+[[package]]
525+name = "cfg-if"
526+version = "1.0.4"
527+source = "registry+https://github.com/rust-lang/crates.io-index"
528+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
529+
530+[[package]]
531+name = "cfg_aliases"
532+version = "0.2.1"
533+source = "registry+https://github.com/rust-lang/crates.io-index"
534+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
535+
536+[[package]]
537+name = "ciborium"
538+version = "0.2.2"
539+source = "registry+https://github.com/rust-lang/crates.io-index"
540+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
541+dependencies = [
542+ "ciborium-io",
543+ "ciborium-ll",
544+ "serde",
545+]
546+
547+[[package]]
548+name = "ciborium-io"
549+version = "0.2.2"
550+source = "registry+https://github.com/rust-lang/crates.io-index"
551+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
552+
553+[[package]]
554+name = "ciborium-ll"
555+version = "0.2.2"
556+source = "registry+https://github.com/rust-lang/crates.io-index"
557+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
558+dependencies = [
559+ "ciborium-io",
560+ "half",
561+]
562+
563+[[package]]
564+name = "clang-sys"
565+version = "1.8.1"
566+source = "registry+https://github.com/rust-lang/crates.io-index"
567+checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
568+dependencies = [
569+ "glob",
570+ "libc",
571+ "libloading",
572+]
573+
574+[[package]]
575+name = "clap"
576+version = "4.6.1"
577+source = "registry+https://github.com/rust-lang/crates.io-index"
578+checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
579+dependencies = [
580+ "clap_builder",
581+ "clap_derive",
582+]
583+
584+[[package]]
585+name = "clap_builder"
586+version = "4.6.0"
587+source = "registry+https://github.com/rust-lang/crates.io-index"
588+checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f"
589+dependencies = [
590+ "anstream",
591+ "anstyle",
592+ "clap_lex",
593+ "strsim",
594+]
595+
596+[[package]]
597+name = "clap_derive"
598+version = "4.6.1"
599+source = "registry+https://github.com/rust-lang/crates.io-index"
600+checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9"
601+dependencies = [
602+ "heck",
603+ "proc-macro2",
604+ "quote",
605+ "syn",
606+]
607+
608+[[package]]
609+name = "clap_lex"
610+version = "1.1.0"
611+source = "registry+https://github.com/rust-lang/crates.io-index"
612+checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
613+
614+[[package]]
615+name = "clipboard-win"
616+version = "5.4.1"
617+source = "registry+https://github.com/rust-lang/crates.io-index"
618+checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4"
619+dependencies = [
620+ "error-code",
621+]
622+
623+[[package]]
624+name = "clipboard_macos"
625+version = "0.1.1"
626+source = "registry+https://github.com/rust-lang/crates.io-index"
627+checksum = "9b7f4aaa047ba3c3630b080bb9860894732ff23e2aee290a418909aa6d5df38f"
628+dependencies = [
629+ "objc2 0.5.2",
630+ "objc2-app-kit",
631+ "objc2-foundation 0.2.2",
632+]
633+
634+[[package]]
635+name = "clipboard_wayland"
636+version = "0.2.2"
637+source = "registry+https://github.com/rust-lang/crates.io-index"
638+checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
639+dependencies = [
640+ "smithay-clipboard",
641+]
642+
643+[[package]]
644+name = "codespan-reporting"
645+version = "0.12.0"
646+source = "registry+https://github.com/rust-lang/crates.io-index"
647+checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81"
648+dependencies = [
649+ "serde",
650+ "termcolor",
651+ "unicode-width 0.2.2",
652+]
653+
654+[[package]]
655+name = "colorchoice"
656+version = "1.0.5"
657+source = "registry+https://github.com/rust-lang/crates.io-index"
658+checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
659+
660+[[package]]
661+name = "combine"
662+version = "4.6.7"
663+source = "registry+https://github.com/rust-lang/crates.io-index"
664+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
665+dependencies = [
666+ "bytes",
667+ "memchr",
668+]
669+
670+[[package]]
671+name = "compact_str"
672+version = "0.8.1"
673+source = "registry+https://github.com/rust-lang/crates.io-index"
674+checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32"
675+dependencies = [
676+ "castaway",
677+ "cfg-if",
678+ "itoa",
679+ "rustversion",
680+ "ryu",
681+ "static_assertions",
682+]
683+
684+[[package]]
685+name = "concurrent-queue"
686+version = "2.5.0"
687+source = "registry+https://github.com/rust-lang/crates.io-index"
688+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
689+dependencies = [
690+ "crossbeam-utils",
691+]
692+
693+[[package]]
694+name = "convert_case"
695+version = "0.6.0"
696+source = "registry+https://github.com/rust-lang/crates.io-index"
697+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
698+dependencies = [
699+ "unicode-segmentation",
700+]
701+
702+[[package]]
703+name = "cookie-factory"
704+version = "0.3.3"
705+source = "registry+https://github.com/rust-lang/crates.io-index"
706+checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2"
707+dependencies = [
708+ "futures",
709+]
710+
711+[[package]]
712+name = "core-foundation"
713+version = "0.9.4"
714+source = "registry+https://github.com/rust-lang/crates.io-index"
715+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
716+dependencies = [
717+ "core-foundation-sys",
718+ "libc",
719+]
720+
721+[[package]]
722+name = "core-foundation"
723+version = "0.10.1"
724+source = "registry+https://github.com/rust-lang/crates.io-index"
725+checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
726+dependencies = [
727+ "core-foundation-sys",
728+ "libc",
729+]
730+
731+[[package]]
732+name = "core-foundation-sys"
733+version = "0.8.7"
734+source = "registry+https://github.com/rust-lang/crates.io-index"
735+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
736+
737+[[package]]
738+name = "core-graphics"
739+version = "0.23.2"
740+source = "registry+https://github.com/rust-lang/crates.io-index"
741+checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
742+dependencies = [
743+ "bitflags 1.3.2",
744+ "core-foundation 0.9.4",
745+ "core-graphics-types 0.1.3",
746+ "foreign-types",
747+ "libc",
748+]
749+
750+[[package]]
751+name = "core-graphics-types"
752+version = "0.1.3"
753+source = "registry+https://github.com/rust-lang/crates.io-index"
754+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
755+dependencies = [
756+ "bitflags 1.3.2",
757+ "core-foundation 0.9.4",
758+ "libc",
759+]
760+
761+[[package]]
762+name = "core-graphics-types"
763+version = "0.2.0"
764+source = "registry+https://github.com/rust-lang/crates.io-index"
765+checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
766+dependencies = [
767+ "bitflags 2.11.1",
768+ "core-foundation 0.10.1",
769+ "libc",
770+]
771+
772+[[package]]
773+name = "core_maths"
774+version = "0.1.1"
775+source = "registry+https://github.com/rust-lang/crates.io-index"
776+checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30"
777+dependencies = [
778+ "libm",
779+]
780+
781+[[package]]
782+name = "cosmic-text"
783+version = "0.15.0"
784+source = "registry+https://github.com/rust-lang/crates.io-index"
785+checksum = "173852283a9a57a3cbe365d86e74dc428a09c50421477d5ad6fe9d9509e37737"
786+dependencies = [
787+ "bitflags 2.11.1",
788+ "fontdb",
789+ "harfrust",
790+ "linebender_resource_handle",
791+ "log",
792+ "rangemap",
793+ "rustc-hash 1.1.0",
794+ "self_cell",
795+ "skrifa 0.37.0",
796+ "smol_str",
797+ "swash",
798+ "sys-locale",
799+ "unicode-bidi",
800+ "unicode-linebreak",
801+ "unicode-script",
802+ "unicode-segmentation",
803+]
804+
805+[[package]]
806+name = "criterion"
807+version = "0.5.1"
808+source = "registry+https://github.com/rust-lang/crates.io-index"
809+checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
810+dependencies = [
811+ "anes",
812+ "cast",
813+ "ciborium",
814+ "clap",
815+ "criterion-plot",
816+ "is-terminal",
817+ "itertools 0.10.5",
818+ "num-traits",
819+ "once_cell",
820+ "oorandom",
821+ "regex",
822+ "serde",
823+ "serde_derive",
824+ "serde_json",
825+ "tinytemplate",
826+ "walkdir",
827+]
828+
829+[[package]]
830+name = "criterion-plot"
831+version = "0.5.0"
832+source = "registry+https://github.com/rust-lang/crates.io-index"
833+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
834+dependencies = [
835+ "cast",
836+ "itertools 0.10.5",
837+]
838+
839+[[package]]
840+name = "crossbeam-channel"
841+version = "0.5.15"
842+source = "registry+https://github.com/rust-lang/crates.io-index"
843+checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
844+dependencies = [
845+ "crossbeam-utils",
846+]
847+
848+[[package]]
849+name = "crossbeam-utils"
850+version = "0.8.21"
851+source = "registry+https://github.com/rust-lang/crates.io-index"
852+checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
853+
854+[[package]]
855+name = "crossterm"
856+version = "0.28.1"
857+source = "registry+https://github.com/rust-lang/crates.io-index"
858+checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6"
859+dependencies = [
860+ "bitflags 2.11.1",
861+ "crossterm_winapi",
862+ "mio 1.2.0",
863+ "parking_lot",
864+ "rustix 0.38.44",
865+ "signal-hook",
866+ "signal-hook-mio",
867+ "winapi",
868+]
869+
870+[[package]]
871+name = "crossterm_winapi"
872+version = "0.9.1"
873+source = "registry+https://github.com/rust-lang/crates.io-index"
874+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
875+dependencies = [
876+ "winapi",
877+]
878+
879+[[package]]
880+name = "crunchy"
881+version = "0.2.4"
882+source = "registry+https://github.com/rust-lang/crates.io-index"
883+checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
884+
885+[[package]]
886+name = "cryoglyph"
887+version = "0.1.0"
888+source = "registry+https://github.com/rust-lang/crates.io-index"
889+checksum = "08bc795bdbccdbd461736fb163930a009da6597b226d6f6fce33e7a8eb6ec519"
890+dependencies = [
891+ "cosmic-text",
892+ "etagere",
893+ "lru 0.16.4",
894+ "rustc-hash 2.1.2",
895+ "wgpu",
896+]
897+
898+[[package]]
899+name = "cursor-icon"
900+version = "1.2.0"
901+source = "registry+https://github.com/rust-lang/crates.io-index"
902+checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f"
903+
904+[[package]]
905+name = "darling"
906+version = "0.23.0"
907+source = "registry+https://github.com/rust-lang/crates.io-index"
908+checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d"
909+dependencies = [
910+ "darling_core",
911+ "darling_macro",
912+]
913+
914+[[package]]
915+name = "darling_core"
916+version = "0.23.0"
917+source = "registry+https://github.com/rust-lang/crates.io-index"
918+checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0"
919+dependencies = [
920+ "ident_case",
921+ "proc-macro2",
922+ "quote",
923+ "strsim",
924+ "syn",
925+]
926+
927+[[package]]
928+name = "darling_macro"
929+version = "0.23.0"
930+source = "registry+https://github.com/rust-lang/crates.io-index"
931+checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d"
932+dependencies = [
933+ "darling_core",
934+ "quote",
935+ "syn",
936+]
937+
938+[[package]]
939+name = "dasp_frame"
940+version = "0.11.0"
941+source = "registry+https://github.com/rust-lang/crates.io-index"
942+checksum = "b2a3937f5fe2135702897535c8d4a5553f8b116f76c1529088797f2eee7c5cd6"
943+dependencies = [
944+ "dasp_sample",
945+]
946+
947+[[package]]
948+name = "dasp_sample"
949+version = "0.11.0"
950+source = "registry+https://github.com/rust-lang/crates.io-index"
951+checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"
952+
953+[[package]]
954+name = "dispatch"
955+version = "0.2.0"
956+source = "registry+https://github.com/rust-lang/crates.io-index"
957+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
958+
959+[[package]]
960+name = "dispatch2"
961+version = "0.3.1"
962+source = "registry+https://github.com/rust-lang/crates.io-index"
963+checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38"
964+dependencies = [
965+ "bitflags 2.11.1",
966+ "objc2 0.6.4",
967+]
968+
969+[[package]]
970+name = "dlib"
971+version = "0.5.3"
972+source = "registry+https://github.com/rust-lang/crates.io-index"
973+checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a"
974+dependencies = [
975+ "libloading",
976+]
977+
978+[[package]]
979+name = "document-features"
980+version = "0.2.12"
981+source = "registry+https://github.com/rust-lang/crates.io-index"
982+checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
983+dependencies = [
984+ "litrs",
985+]
986+
987+[[package]]
988+name = "downcast-rs"
989+version = "1.2.1"
990+source = "registry+https://github.com/rust-lang/crates.io-index"
991+checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
992+
993+[[package]]
994+name = "dpi"
995+version = "0.1.2"
996+source = "registry+https://github.com/rust-lang/crates.io-index"
997+checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
998+
999+[[package]]
1000+name = "ebur128"
1001+version = "0.1.10"
1002+source = "registry+https://github.com/rust-lang/crates.io-index"
1003+checksum = "e227cc62d64d6fe01abbef48134b9c1f17d470cef1e7a56337ad05b1f81df7f9"
1004+dependencies = [
1005+ "bitflags 1.3.2",
1006+ "dasp_frame",
1007+ "dasp_sample",
1008+ "smallvec",
1009+]
1010+
1011+[[package]]
1012+name = "either"
1013+version = "1.16.0"
1014+source = "registry+https://github.com/rust-lang/crates.io-index"
1015+checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
1016+
1017+[[package]]
1018+name = "equivalent"
1019+version = "1.0.2"
1020+source = "registry+https://github.com/rust-lang/crates.io-index"
1021+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
1022+
1023+[[package]]
1024+name = "errno"
1025+version = "0.3.14"
1026+source = "registry+https://github.com/rust-lang/crates.io-index"
1027+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
1028+dependencies = [
1029+ "libc",
1030+ "windows-sys 0.61.2",
1031+]
1032+
1033+[[package]]
1034+name = "error-code"
1035+version = "3.3.2"
1036+source = "registry+https://github.com/rust-lang/crates.io-index"
1037+checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59"
1038+
1039+[[package]]
1040+name = "etagere"
1041+version = "0.2.15"
1042+source = "registry+https://github.com/rust-lang/crates.io-index"
1043+checksum = "fc89bf99e5dc15954a60f707c1e09d7540e5cd9af85fa75caa0b510bc08c5342"
1044+dependencies = [
1045+ "euclid",
1046+ "svg_fmt",
1047+]
1048+
1049+[[package]]
1050+name = "euclid"
1051+version = "0.22.14"
1052+source = "registry+https://github.com/rust-lang/crates.io-index"
1053+checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06"
1054+dependencies = [
1055+ "num-traits",
1056+]
1057+
1058+[[package]]
1059+name = "event-listener"
1060+version = "5.4.1"
1061+source = "registry+https://github.com/rust-lang/crates.io-index"
1062+checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
1063+dependencies = [
1064+ "concurrent-queue",
1065+ "parking",
1066+ "pin-project-lite",
1067+]
1068+
1069+[[package]]
1070+name = "event-listener-strategy"
1071+version = "0.5.4"
1072+source = "registry+https://github.com/rust-lang/crates.io-index"
1073+checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
1074+dependencies = [
1075+ "event-listener",
1076+ "pin-project-lite",
1077+]
1078+
1079+[[package]]
1080+name = "fastrand"
1081+version = "2.4.1"
1082+source = "registry+https://github.com/rust-lang/crates.io-index"
1083+checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
1084+
1085+[[package]]
1086+name = "filetime"
1087+version = "0.2.29"
1088+source = "registry+https://github.com/rust-lang/crates.io-index"
1089+checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759"
1090+dependencies = [
1091+ "cfg-if",
1092+ "libc",
1093+]
1094+
1095+[[package]]
1096+name = "find-msvc-tools"
1097+version = "0.1.9"
1098+source = "registry+https://github.com/rust-lang/crates.io-index"
1099+checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
1100+
1101+[[package]]
1102+name = "foldhash"
1103+version = "0.1.5"
1104+source = "registry+https://github.com/rust-lang/crates.io-index"
1105+checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
1106+
1107+[[package]]
1108+name = "foldhash"
1109+version = "0.2.0"
1110+source = "registry+https://github.com/rust-lang/crates.io-index"
1111+checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
1112+
1113+[[package]]
1114+name = "font-types"
1115+version = "0.10.1"
1116+source = "registry+https://github.com/rust-lang/crates.io-index"
1117+checksum = "39a654f404bbcbd48ea58c617c2993ee91d1cb63727a37bf2323a4edeed1b8c5"
1118+dependencies = [
1119+ "bytemuck",
1120+]
1121+
1122+[[package]]
1123+name = "font-types"
1124+version = "0.11.3"
1125+source = "registry+https://github.com/rust-lang/crates.io-index"
1126+checksum = "5b38ad915f6dadd993ced50848a8291a543bd41ca62bc10740d5e64e2ab4cfd7"
1127+dependencies = [
1128+ "bytemuck",
1129+]
1130+
1131+[[package]]
1132+name = "fontconfig-parser"
1133+version = "0.5.8"
1134+source = "registry+https://github.com/rust-lang/crates.io-index"
1135+checksum = "bbc773e24e02d4ddd8395fd30dc147524273a83e54e0f312d986ea30de5f5646"
1136+dependencies = [
1137+ "roxmltree",
1138+]
1139+
1140+[[package]]
1141+name = "fontdb"
1142+version = "0.23.0"
1143+source = "registry+https://github.com/rust-lang/crates.io-index"
1144+checksum = "457e789b3d1202543297a350643cf459f836cade38934e7a4cf6a39e7cde2905"
1145+dependencies = [
1146+ "fontconfig-parser",
1147+ "log",
1148+ "memmap2",
1149+ "slotmap",
1150+ "tinyvec",
1151+ "ttf-parser",
1152+]
1153+
1154+[[package]]
1155+name = "foreign-types"
1156+version = "0.5.0"
1157+source = "registry+https://github.com/rust-lang/crates.io-index"
1158+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
1159+dependencies = [
1160+ "foreign-types-macros",
1161+ "foreign-types-shared",
1162+]
1163+
1164+[[package]]
1165+name = "foreign-types-macros"
1166+version = "0.2.3"
1167+source = "registry+https://github.com/rust-lang/crates.io-index"
1168+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
1169+dependencies = [
1170+ "proc-macro2",
1171+ "quote",
1172+ "syn",
1173+]
1174+
1175+[[package]]
1176+name = "foreign-types-shared"
1177+version = "0.3.1"
1178+source = "registry+https://github.com/rust-lang/crates.io-index"
1179+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
1180+
1181+[[package]]
1182+name = "fsevent-sys"
1183+version = "4.1.0"
1184+source = "registry+https://github.com/rust-lang/crates.io-index"
1185+checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
1186+dependencies = [
1187+ "libc",
1188+]
1189+
1190+[[package]]
1191+name = "futures"
1192+version = "0.3.32"
1193+source = "registry+https://github.com/rust-lang/crates.io-index"
1194+checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d"
1195+dependencies = [
1196+ "futures-channel",
1197+ "futures-core",
1198+ "futures-executor",
1199+ "futures-io",
1200+ "futures-sink",
1201+ "futures-task",
1202+ "futures-util",
1203+]
1204+
1205+[[package]]
1206+name = "futures-channel"
1207+version = "0.3.32"
1208+source = "registry+https://github.com/rust-lang/crates.io-index"
1209+checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
1210+dependencies = [
1211+ "futures-core",
1212+ "futures-sink",
1213+]
1214+
1215+[[package]]
1216+name = "futures-core"
1217+version = "0.3.32"
1218+source = "registry+https://github.com/rust-lang/crates.io-index"
1219+checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
1220+
1221+[[package]]
1222+name = "futures-executor"
1223+version = "0.3.32"
1224+source = "registry+https://github.com/rust-lang/crates.io-index"
1225+checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d"
1226+dependencies = [
1227+ "futures-core",
1228+ "futures-task",
1229+ "futures-util",
1230+]
1231+
1232+[[package]]
1233+name = "futures-io"
1234+version = "0.3.32"
1235+source = "registry+https://github.com/rust-lang/crates.io-index"
1236+checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
1237+
1238+[[package]]
1239+name = "futures-lite"
1240+version = "2.6.1"
1241+source = "registry+https://github.com/rust-lang/crates.io-index"
1242+checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad"
1243+dependencies = [
1244+ "fastrand",
1245+ "futures-core",
1246+ "futures-io",
1247+ "parking",
1248+ "pin-project-lite",
1249+]
1250+
1251+[[package]]
1252+name = "futures-macro"
1253+version = "0.3.32"
1254+source = "registry+https://github.com/rust-lang/crates.io-index"
1255+checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b"
1256+dependencies = [
1257+ "proc-macro2",
1258+ "quote",
1259+ "syn",
1260+]
1261+
1262+[[package]]
1263+name = "futures-sink"
1264+version = "0.3.32"
1265+source = "registry+https://github.com/rust-lang/crates.io-index"
1266+checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893"
1267+
1268+[[package]]
1269+name = "futures-task"
1270+version = "0.3.32"
1271+source = "registry+https://github.com/rust-lang/crates.io-index"
1272+checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
1273+
1274+[[package]]
1275+name = "futures-util"
1276+version = "0.3.32"
1277+source = "registry+https://github.com/rust-lang/crates.io-index"
1278+checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
1279+dependencies = [
1280+ "futures-channel",
1281+ "futures-core",
1282+ "futures-io",
1283+ "futures-macro",
1284+ "futures-sink",
1285+ "futures-task",
1286+ "memchr",
1287+ "pin-project-lite",
1288+ "slab",
1289+]
1290+
1291+[[package]]
1292+name = "getrandom"
1293+version = "0.3.4"
1294+source = "registry+https://github.com/rust-lang/crates.io-index"
1295+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
1296+dependencies = [
1297+ "cfg-if",
1298+ "libc",
1299+ "r-efi",
1300+ "wasip2",
1301+]
1302+
1303+[[package]]
1304+name = "gl_generator"
1305+version = "0.14.0"
1306+source = "registry+https://github.com/rust-lang/crates.io-index"
1307+checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
1308+dependencies = [
1309+ "khronos_api",
1310+ "log",
1311+ "xml-rs",
1312+]
1313+
1314+[[package]]
1315+name = "glam"
1316+version = "0.25.0"
1317+source = "registry+https://github.com/rust-lang/crates.io-index"
1318+checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
1319+
1320+[[package]]
1321+name = "glob"
1322+version = "0.3.3"
1323+source = "registry+https://github.com/rust-lang/crates.io-index"
1324+checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
1325+
1326+[[package]]
1327+name = "glow"
1328+version = "0.16.0"
1329+source = "registry+https://github.com/rust-lang/crates.io-index"
1330+checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08"
1331+dependencies = [
1332+ "js-sys",
1333+ "slotmap",
1334+ "wasm-bindgen",
1335+ "web-sys",
1336+]
1337+
1338+[[package]]
1339+name = "glutin_wgl_sys"
1340+version = "0.6.1"
1341+source = "registry+https://github.com/rust-lang/crates.io-index"
1342+checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e"
1343+dependencies = [
1344+ "gl_generator",
1345+]
1346+
1347+[[package]]
1348+name = "gpu-alloc"
1349+version = "0.6.0"
1350+source = "registry+https://github.com/rust-lang/crates.io-index"
1351+checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
1352+dependencies = [
1353+ "bitflags 2.11.1",
1354+ "gpu-alloc-types",
1355+]
1356+
1357+[[package]]
1358+name = "gpu-alloc-types"
1359+version = "0.3.0"
1360+source = "registry+https://github.com/rust-lang/crates.io-index"
1361+checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
1362+dependencies = [
1363+ "bitflags 2.11.1",
1364+]
1365+
1366+[[package]]
1367+name = "gpu-allocator"
1368+version = "0.27.0"
1369+source = "registry+https://github.com/rust-lang/crates.io-index"
1370+checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd"
1371+dependencies = [
1372+ "log",
1373+ "presser",
1374+ "thiserror 1.0.69",
1375+ "windows",
1376+]
1377+
1378+[[package]]
1379+name = "gpu-descriptor"
1380+version = "0.3.2"
1381+source = "registry+https://github.com/rust-lang/crates.io-index"
1382+checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca"
1383+dependencies = [
1384+ "bitflags 2.11.1",
1385+ "gpu-descriptor-types",
1386+ "hashbrown 0.15.5",
1387+]
1388+
1389+[[package]]
1390+name = "gpu-descriptor-types"
1391+version = "0.2.0"
1392+source = "registry+https://github.com/rust-lang/crates.io-index"
1393+checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91"
1394+dependencies = [
1395+ "bitflags 2.11.1",
1396+]
1397+
1398+[[package]]
1399+name = "guillotiere"
1400+version = "0.6.2"
1401+source = "registry+https://github.com/rust-lang/crates.io-index"
1402+checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782"
1403+dependencies = [
1404+ "euclid",
1405+ "svg_fmt",
1406+]
1407+
1408+[[package]]
1409+name = "half"
1410+version = "2.7.1"
1411+source = "registry+https://github.com/rust-lang/crates.io-index"
1412+checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
1413+dependencies = [
1414+ "cfg-if",
1415+ "crunchy",
1416+ "num-traits",
1417+ "zerocopy",
1418+]
1419+
1420+[[package]]
1421+name = "harfrust"
1422+version = "0.3.2"
1423+source = "registry+https://github.com/rust-lang/crates.io-index"
1424+checksum = "92c020db12c71d8a12a3fe7607873cade3a01a6287e29d540c8723276221b9d8"
1425+dependencies = [
1426+ "bitflags 2.11.1",
1427+ "bytemuck",
1428+ "core_maths",
1429+ "read-fonts 0.35.0",
1430+ "smallvec",
1431+]
1432+
1433+[[package]]
1434+name = "hashbrown"
1435+version = "0.15.5"
1436+source = "registry+https://github.com/rust-lang/crates.io-index"
1437+checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
1438+dependencies = [
1439+ "allocator-api2",
1440+ "equivalent",
1441+ "foldhash 0.1.5",
1442+]
1443+
1444+[[package]]
1445+name = "hashbrown"
1446+version = "0.16.1"
1447+source = "registry+https://github.com/rust-lang/crates.io-index"
1448+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
1449+dependencies = [
1450+ "foldhash 0.2.0",
1451+]
1452+
1453+[[package]]
1454+name = "hashbrown"
1455+version = "0.17.1"
1456+source = "registry+https://github.com/rust-lang/crates.io-index"
1457+checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
1458+
1459+[[package]]
1460+name = "headroom-cli"
1461+version = "0.1.0"
1462+dependencies = [
1463+ "assert_no_alloc",
1464+ "clap",
1465+ "crossbeam-channel",
1466+ "crossterm",
1467+ "headroom-client",
1468+ "headroom-core",
1469+ "headroom-ipc",
1470+ "ratatui",
1471+ "serde_json",
1472+ "thiserror 2.0.18",
1473+ "tracing",
1474+ "tracing-subscriber",
1475+]
1476+
1477+[[package]]
1478+name = "headroom-client"
1479+version = "0.1.0"
1480+dependencies = [
1481+ "headroom-ipc",
1482+ "serde",
1483+ "serde_json",
1484+ "thiserror 2.0.18",
1485+]
1486+
1487+[[package]]
1488+name = "headroom-core"
1489+version = "0.1.0"
1490+dependencies = [
1491+ "assert_no_alloc",
1492+ "bytemuck",
1493+ "criterion",
1494+ "crossbeam-channel",
1495+ "ebur128",
1496+ "headroom-client",
1497+ "headroom-dsp",
1498+ "headroom-ipc",
1499+ "libspa",
1500+ "libspa-sys",
1501+ "nix",
1502+ "notify",
1503+ "notify-debouncer-mini",
1504+ "parking_lot",
1505+ "pipewire",
1506+ "pipewire-filter",
1507+ "rtrb",
1508+ "serde",
1509+ "serde_json",
1510+ "signal-hook",
1511+ "thiserror 2.0.18",
1512+ "toml",
1513+ "tracing",
1514+ "tracing-subscriber",
1515+]
1516+
1517+[[package]]
1518+name = "headroom-dsp"
1519+version = "0.1.0"
1520+dependencies = [
1521+ "criterion",
1522+]
1523+
1524+[[package]]
1525+name = "headroom-gui"
1526+version = "0.1.0"
1527+dependencies = [
1528+ "anyhow",
1529+ "crossbeam-channel",
1530+ "headroom-client",
1531+ "headroom-ipc",
1532+ "iced",
1533+ "serde_json",
1534+ "tracing",
1535+ "tracing-subscriber",
1536+]
1537+
1538+[[package]]
1539+name = "headroom-ipc"
1540+version = "0.1.0"
1541+dependencies = [
1542+ "serde",
1543+ "serde_json",
1544+ "thiserror 2.0.18",
1545+]
1546+
1547+[[package]]
1548+name = "heck"
1549+version = "0.5.0"
1550+source = "registry+https://github.com/rust-lang/crates.io-index"
1551+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
1552+
1553+[[package]]
1554+name = "hermit-abi"
1555+version = "0.5.2"
1556+source = "registry+https://github.com/rust-lang/crates.io-index"
1557+checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
1558+
1559+[[package]]
1560+name = "hexf-parse"
1561+version = "0.2.1"
1562+source = "registry+https://github.com/rust-lang/crates.io-index"
1563+checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
1564+
1565+[[package]]
1566+name = "iced"
1567+version = "0.14.0"
1568+source = "registry+https://github.com/rust-lang/crates.io-index"
1569+checksum = "000e01026c93ba643f8357a3db3ada0e6555265a377f6f9291c472f6dd701fb3"
1570+dependencies = [
1571+ "iced_core",
1572+ "iced_debug",
1573+ "iced_futures",
1574+ "iced_renderer",
1575+ "iced_runtime",
1576+ "iced_widget",
1577+ "iced_winit",
1578+ "thiserror 2.0.18",
1579+]
1580+
1581+[[package]]
1582+name = "iced_core"
1583+version = "0.14.0"
1584+source = "registry+https://github.com/rust-lang/crates.io-index"
1585+checksum = "91ab1937d699403e7e69252ae743a902bcee9f4ab2052cc4c9a46fcf34729d85"
1586+dependencies = [
1587+ "bitflags 2.11.1",
1588+ "bytes",
1589+ "glam",
1590+ "lilt",
1591+ "log",
1592+ "num-traits",
1593+ "rustc-hash 2.1.2",
1594+ "smol_str",
1595+ "thiserror 2.0.18",
1596+ "web-time",
1597+]
1598+
1599+[[package]]
1600+name = "iced_debug"
1601+version = "0.14.0"
1602+source = "registry+https://github.com/rust-lang/crates.io-index"
1603+checksum = "25035ab0215a620e53f4103e36fc4e59a1fb2817e4bfc38a30ad27b4202ea0be"
1604+dependencies = [
1605+ "iced_core",
1606+ "iced_futures",
1607+ "log",
1608+]
1609+
1610+[[package]]
1611+name = "iced_futures"
1612+version = "0.14.0"
1613+source = "registry+https://github.com/rust-lang/crates.io-index"
1614+checksum = "8c0c85ccad42dfbec7293c36c018af0ea0dbcc52d137a4a9a0b0f6822a3fdf0a"
1615+dependencies = [
1616+ "futures",
1617+ "iced_core",
1618+ "log",
1619+ "rustc-hash 2.1.2",
1620+ "smol",
1621+ "wasm-bindgen-futures",
1622+ "wasmtimer",
1623+]
1624+
1625+[[package]]
1626+name = "iced_graphics"
1627+version = "0.14.0"
1628+source = "registry+https://github.com/rust-lang/crates.io-index"
1629+checksum = "234ca1c2cec4155055f68fa5fad1b5242c496ac8238d80a259bca382fb44a102"
1630+dependencies = [
1631+ "bitflags 2.11.1",
1632+ "bytemuck",
1633+ "cosmic-text",
1634+ "half",
1635+ "iced_core",
1636+ "iced_futures",
1637+ "log",
1638+ "raw-window-handle",
1639+ "rustc-hash 2.1.2",
1640+ "thiserror 2.0.18",
1641+ "unicode-segmentation",
1642+]
1643+
1644+[[package]]
1645+name = "iced_program"
1646+version = "0.14.0"
1647+source = "registry+https://github.com/rust-lang/crates.io-index"
1648+checksum = "6dfafec2947cda688d8eb00dac337ba11aa60f9ef6335aed343e189d26e4a673"
1649+dependencies = [
1650+ "iced_graphics",
1651+ "iced_runtime",
1652+]
1653+
1654+[[package]]
1655+name = "iced_renderer"
1656+version = "0.14.0"
1657+source = "registry+https://github.com/rust-lang/crates.io-index"
1658+checksum = "250cc0802408e8c077986ec56c7d07c65f423ee658a4b9fd795a1f2aae5dac05"
1659+dependencies = [
1660+ "iced_graphics",
1661+ "iced_tiny_skia",
1662+ "iced_wgpu",
1663+ "log",
1664+ "thiserror 2.0.18",
1665+]
1666+
1667+[[package]]
1668+name = "iced_runtime"
1669+version = "0.14.0"
1670+source = "registry+https://github.com/rust-lang/crates.io-index"
1671+checksum = "d1889b819ce4c06674183242e336c8d49465665441396914dc07cc86f44fa8d4"
1672+dependencies = [
1673+ "bytes",
1674+ "iced_core",
1675+ "iced_futures",
1676+ "raw-window-handle",
1677+ "thiserror 2.0.18",
1678+]
1679+
1680+[[package]]
1681+name = "iced_tiny_skia"
1682+version = "0.14.0"
1683+source = "registry+https://github.com/rust-lang/crates.io-index"
1684+checksum = "fe0acf8b75a3bc914aff5f2329fdffc1b36eeaea29dda0e4bd232f1c62e9cc3d"
1685+dependencies = [
1686+ "bytemuck",
1687+ "cosmic-text",
1688+ "iced_debug",
1689+ "iced_graphics",
1690+ "kurbo",
1691+ "log",
1692+ "rustc-hash 2.1.2",
1693+ "softbuffer",
1694+ "tiny-skia",
1695+]
1696+
1697+[[package]]
1698+name = "iced_wgpu"
1699+version = "0.14.0"
1700+source = "registry+https://github.com/rust-lang/crates.io-index"
1701+checksum = "ff144a999b0ca0f8a10257934500060240825c42e950ec0ebee9c8ae30561c13"
1702+dependencies = [
1703+ "bitflags 2.11.1",
1704+ "bytemuck",
1705+ "cryoglyph",
1706+ "futures",
1707+ "glam",
1708+ "guillotiere",
1709+ "iced_debug",
1710+ "iced_graphics",
1711+ "log",
1712+ "rustc-hash 2.1.2",
1713+ "thiserror 2.0.18",
1714+ "wgpu",
1715+]
1716+
1717+[[package]]
1718+name = "iced_widget"
1719+version = "0.14.2"
1720+source = "registry+https://github.com/rust-lang/crates.io-index"
1721+checksum = "b1596afa0d3109c2618e8bc12bae6c11d3064df8f95c42dfce570397dbe957ab"
1722+dependencies = [
1723+ "iced_renderer",
1724+ "log",
1725+ "num-traits",
1726+ "rustc-hash 2.1.2",
1727+ "thiserror 2.0.18",
1728+ "unicode-segmentation",
1729+]
1730+
1731+[[package]]
1732+name = "iced_winit"
1733+version = "0.14.0"
1734+source = "registry+https://github.com/rust-lang/crates.io-index"
1735+checksum = "8b7dbedc47562d1de3b9707d939f678b88c382004b7ab5a18f7a7dd723162d75"
1736+dependencies = [
1737+ "iced_debug",
1738+ "iced_program",
1739+ "log",
1740+ "rustc-hash 2.1.2",
1741+ "thiserror 2.0.18",
1742+ "tracing",
1743+ "wasm-bindgen-futures",
1744+ "web-sys",
1745+ "window_clipboard",
1746+ "winit",
1747+]
1748+
1749+[[package]]
1750+name = "ident_case"
1751+version = "1.0.1"
1752+source = "registry+https://github.com/rust-lang/crates.io-index"
1753+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
1754+
1755+[[package]]
1756+name = "indexmap"
1757+version = "2.14.0"
1758+source = "registry+https://github.com/rust-lang/crates.io-index"
1759+checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
1760+dependencies = [
1761+ "equivalent",
1762+ "hashbrown 0.17.1",
1763+]
1764+
1765+[[package]]
1766+name = "indoc"
1767+version = "2.0.7"
1768+source = "registry+https://github.com/rust-lang/crates.io-index"
1769+checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
1770+dependencies = [
1771+ "rustversion",
1772+]
1773+
1774+[[package]]
1775+name = "inotify"
1776+version = "0.9.6"
1777+source = "registry+https://github.com/rust-lang/crates.io-index"
1778+checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
1779+dependencies = [
1780+ "bitflags 1.3.2",
1781+ "inotify-sys",
1782+ "libc",
1783+]
1784+
1785+[[package]]
1786+name = "inotify-sys"
1787+version = "0.1.5"
1788+source = "registry+https://github.com/rust-lang/crates.io-index"
1789+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
1790+dependencies = [
1791+ "libc",
1792+]
1793+
1794+[[package]]
1795+name = "instability"
1796+version = "0.3.12"
1797+source = "registry+https://github.com/rust-lang/crates.io-index"
1798+checksum = "5eb2d60ef19920a3a9193c3e371f726ec1dafc045dac788d0fb3704272458971"
1799+dependencies = [
1800+ "darling",
1801+ "indoc",
1802+ "proc-macro2",
1803+ "quote",
1804+ "syn",
1805+]
1806+
1807+[[package]]
1808+name = "is-terminal"
1809+version = "0.4.17"
1810+source = "registry+https://github.com/rust-lang/crates.io-index"
1811+checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46"
1812+dependencies = [
1813+ "hermit-abi",
1814+ "libc",
1815+ "windows-sys 0.61.2",
1816+]
1817+
1818+[[package]]
1819+name = "is_terminal_polyfill"
1820+version = "1.70.2"
1821+source = "registry+https://github.com/rust-lang/crates.io-index"
1822+checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
1823+
1824+[[package]]
1825+name = "itertools"
1826+version = "0.10.5"
1827+source = "registry+https://github.com/rust-lang/crates.io-index"
1828+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
1829+dependencies = [
1830+ "either",
1831+]
1832+
1833+[[package]]
1834+name = "itertools"
1835+version = "0.12.1"
1836+source = "registry+https://github.com/rust-lang/crates.io-index"
1837+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
1838+dependencies = [
1839+ "either",
1840+]
1841+
1842+[[package]]
1843+name = "itertools"
1844+version = "0.13.0"
1845+source = "registry+https://github.com/rust-lang/crates.io-index"
1846+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
1847+dependencies = [
1848+ "either",
1849+]
1850+
1851+[[package]]
1852+name = "itoa"
1853+version = "1.0.18"
1854+source = "registry+https://github.com/rust-lang/crates.io-index"
1855+checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
1856+
1857+[[package]]
1858+name = "jni"
1859+version = "0.22.4"
1860+source = "registry+https://github.com/rust-lang/crates.io-index"
1861+checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498"
1862+dependencies = [
1863+ "cfg-if",
1864+ "combine",
1865+ "jni-macros",
1866+ "jni-sys 0.4.1",
1867+ "log",
1868+ "simd_cesu8",
1869+ "thiserror 2.0.18",
1870+ "walkdir",
1871+ "windows-link",
1872+]
1873+
1874+[[package]]
1875+name = "jni-macros"
1876+version = "0.22.4"
1877+source = "registry+https://github.com/rust-lang/crates.io-index"
1878+checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3"
1879+dependencies = [
1880+ "proc-macro2",
1881+ "quote",
1882+ "rustc_version",
1883+ "simd_cesu8",
1884+ "syn",
1885+]
1886+
1887+[[package]]
1888+name = "jni-sys"
1889+version = "0.3.1"
1890+source = "registry+https://github.com/rust-lang/crates.io-index"
1891+checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258"
1892+dependencies = [
1893+ "jni-sys 0.4.1",
1894+]
1895+
1896+[[package]]
1897+name = "jni-sys"
1898+version = "0.4.1"
1899+source = "registry+https://github.com/rust-lang/crates.io-index"
1900+checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2"
1901+dependencies = [
1902+ "jni-sys-macros",
1903+]
1904+
1905+[[package]]
1906+name = "jni-sys-macros"
1907+version = "0.4.1"
1908+source = "registry+https://github.com/rust-lang/crates.io-index"
1909+checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
1910+dependencies = [
1911+ "quote",
1912+ "syn",
1913+]
1914+
1915+[[package]]
1916+name = "jobserver"
1917+version = "0.1.34"
1918+source = "registry+https://github.com/rust-lang/crates.io-index"
1919+checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
1920+dependencies = [
1921+ "getrandom",
1922+ "libc",
1923+]
1924+
1925+[[package]]
1926+name = "js-sys"
1927+version = "0.3.99"
1928+source = "registry+https://github.com/rust-lang/crates.io-index"
1929+checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11"
1930+dependencies = [
1931+ "cfg-if",
1932+ "futures-util",
1933+ "once_cell",
1934+ "wasm-bindgen",
1935+]
1936+
1937+[[package]]
1938+name = "khronos-egl"
1939+version = "6.0.0"
1940+source = "registry+https://github.com/rust-lang/crates.io-index"
1941+checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
1942+dependencies = [
1943+ "libc",
1944+ "libloading",
1945+ "pkg-config",
1946+]
1947+
1948+[[package]]
1949+name = "khronos_api"
1950+version = "3.1.0"
1951+source = "registry+https://github.com/rust-lang/crates.io-index"
1952+checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
1953+
1954+[[package]]
1955+name = "kqueue"
1956+version = "1.1.1"
1957+source = "registry+https://github.com/rust-lang/crates.io-index"
1958+checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a"
1959+dependencies = [
1960+ "kqueue-sys",
1961+ "libc",
1962+]
1963+
1964+[[package]]
1965+name = "kqueue-sys"
1966+version = "1.1.2"
1967+source = "registry+https://github.com/rust-lang/crates.io-index"
1968+checksum = "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087"
1969+dependencies = [
1970+ "bitflags 2.11.1",
1971+ "libc",
1972+]
1973+
1974+[[package]]
1975+name = "kurbo"
1976+version = "0.10.4"
1977+source = "registry+https://github.com/rust-lang/crates.io-index"
1978+checksum = "1618d4ebd923e97d67e7cd363d80aef35fe961005cbbbb3d2dad8bdd1bc63440"
1979+dependencies = [
1980+ "arrayvec",
1981+ "smallvec",
1982+]
1983+
1984+[[package]]
1985+name = "lazy_static"
1986+version = "1.5.0"
1987+source = "registry+https://github.com/rust-lang/crates.io-index"
1988+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
1989+
1990+[[package]]
1991+name = "lazycell"
1992+version = "1.3.0"
1993+source = "registry+https://github.com/rust-lang/crates.io-index"
1994+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
1995+
1996+[[package]]
1997+name = "libc"
1998+version = "0.2.186"
1999+source = "registry+https://github.com/rust-lang/crates.io-index"
2000+checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
2001+
2002+[[package]]
2003+name = "libloading"
2004+version = "0.8.9"
2005+source = "registry+https://github.com/rust-lang/crates.io-index"
2006+checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
2007+dependencies = [
2008+ "cfg-if",
2009+ "windows-link",
2010+]
2011+
2012+[[package]]
2013+name = "libm"
2014+version = "0.2.16"
2015+source = "registry+https://github.com/rust-lang/crates.io-index"
2016+checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
2017+
2018+[[package]]
2019+name = "libredox"
2020+version = "0.1.16"
2021+source = "registry+https://github.com/rust-lang/crates.io-index"
2022+checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c"
2023+dependencies = [
2024+ "bitflags 2.11.1",
2025+ "libc",
2026+ "plain",
2027+ "redox_syscall 0.7.5",
2028+]
2029+
2030+[[package]]
2031+name = "libspa"
2032+version = "0.8.0"
2033+source = "registry+https://github.com/rust-lang/crates.io-index"
2034+checksum = "65f3a4b81b2a2d8c7f300643676202debd1b7c929dbf5c9bb89402ea11d19810"
2035+dependencies = [
2036+ "bitflags 2.11.1",
2037+ "cc",
2038+ "convert_case",
2039+ "cookie-factory",
2040+ "libc",
2041+ "libspa-sys",
2042+ "nix",
2043+ "nom",
2044+ "system-deps",
2045+]
2046+
2047+[[package]]
2048+name = "libspa-sys"
2049+version = "0.8.0"
2050+source = "registry+https://github.com/rust-lang/crates.io-index"
2051+checksum = "bf0d9716420364790e85cbb9d3ac2c950bde16a7dd36f3209b7dfdfc4a24d01f"
2052+dependencies = [
2053+ "bindgen",
2054+ "cc",
2055+ "system-deps",
2056+]
2057+
2058+[[package]]
2059+name = "lilt"
2060+version = "0.8.1"
2061+source = "registry+https://github.com/rust-lang/crates.io-index"
2062+checksum = "f67562e5eff6b20553fa9be1c503356768420994e28f67e3eafe6f41910e57ad"
2063+dependencies = [
2064+ "web-time",
2065+]
2066+
2067+[[package]]
2068+name = "linebender_resource_handle"
2069+version = "0.1.1"
2070+source = "registry+https://github.com/rust-lang/crates.io-index"
2071+checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4"
2072+
2073+[[package]]
2074+name = "linux-raw-sys"
2075+version = "0.4.15"
2076+source = "registry+https://github.com/rust-lang/crates.io-index"
2077+checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
2078+
2079+[[package]]
2080+name = "linux-raw-sys"
2081+version = "0.12.1"
2082+source = "registry+https://github.com/rust-lang/crates.io-index"
2083+checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
2084+
2085+[[package]]
2086+name = "litrs"
2087+version = "1.0.0"
2088+source = "registry+https://github.com/rust-lang/crates.io-index"
2089+checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
2090+
2091+[[package]]
2092+name = "lock_api"
2093+version = "0.4.14"
2094+source = "registry+https://github.com/rust-lang/crates.io-index"
2095+checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
2096+dependencies = [
2097+ "scopeguard",
2098+]
2099+
2100+[[package]]
2101+name = "log"
2102+version = "0.4.30"
2103+source = "registry+https://github.com/rust-lang/crates.io-index"
2104+checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5"
2105+
2106+[[package]]
2107+name = "lru"
2108+version = "0.12.5"
2109+source = "registry+https://github.com/rust-lang/crates.io-index"
2110+checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
2111+dependencies = [
2112+ "hashbrown 0.15.5",
2113+]
2114+
2115+[[package]]
2116+name = "lru"
2117+version = "0.16.4"
2118+source = "registry+https://github.com/rust-lang/crates.io-index"
2119+checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39"
2120+
2121+[[package]]
2122+name = "malloc_buf"
2123+version = "0.0.6"
2124+source = "registry+https://github.com/rust-lang/crates.io-index"
2125+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
2126+dependencies = [
2127+ "libc",
2128+]
2129+
2130+[[package]]
2131+name = "matchers"
2132+version = "0.2.0"
2133+source = "registry+https://github.com/rust-lang/crates.io-index"
2134+checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
2135+dependencies = [
2136+ "regex-automata",
2137+]
2138+
2139+[[package]]
2140+name = "memchr"
2141+version = "2.8.0"
2142+source = "registry+https://github.com/rust-lang/crates.io-index"
2143+checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
2144+
2145+[[package]]
2146+name = "memmap2"
2147+version = "0.9.10"
2148+source = "registry+https://github.com/rust-lang/crates.io-index"
2149+checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3"
2150+dependencies = [
2151+ "libc",
2152+]
2153+
2154+[[package]]
2155+name = "metal"
2156+version = "0.32.0"
2157+source = "registry+https://github.com/rust-lang/crates.io-index"
2158+checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605"
2159+dependencies = [
2160+ "bitflags 2.11.1",
2161+ "block",
2162+ "core-graphics-types 0.2.0",
2163+ "foreign-types",
2164+ "log",
2165+ "objc",
2166+ "paste",
2167+]
2168+
2169+[[package]]
2170+name = "minimal-lexical"
2171+version = "0.2.1"
2172+source = "registry+https://github.com/rust-lang/crates.io-index"
2173+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
2174+
2175+[[package]]
2176+name = "mio"
2177+version = "0.8.11"
2178+source = "registry+https://github.com/rust-lang/crates.io-index"
2179+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
2180+dependencies = [
2181+ "libc",
2182+ "log",
2183+ "wasi",
2184+ "windows-sys 0.48.0",
2185+]
2186+
2187+[[package]]
2188+name = "mio"
2189+version = "1.2.0"
2190+source = "registry+https://github.com/rust-lang/crates.io-index"
2191+checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
2192+dependencies = [
2193+ "libc",
2194+ "log",
2195+ "wasi",
2196+ "windows-sys 0.61.2",
2197+]
2198+
2199+[[package]]
2200+name = "naga"
2201+version = "27.0.3"
2202+source = "registry+https://github.com/rust-lang/crates.io-index"
2203+checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8"
2204+dependencies = [
2205+ "arrayvec",
2206+ "bit-set",
2207+ "bitflags 2.11.1",
2208+ "cfg-if",
2209+ "cfg_aliases",
2210+ "codespan-reporting",
2211+ "half",
2212+ "hashbrown 0.16.1",
2213+ "hexf-parse",
2214+ "indexmap",
2215+ "libm",
2216+ "log",
2217+ "num-traits",
2218+ "once_cell",
2219+ "rustc-hash 1.1.0",
2220+ "spirv",
2221+ "thiserror 2.0.18",
2222+ "unicode-ident",
2223+]
2224+
2225+[[package]]
2226+name = "ndk"
2227+version = "0.9.0"
2228+source = "registry+https://github.com/rust-lang/crates.io-index"
2229+checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
2230+dependencies = [
2231+ "bitflags 2.11.1",
2232+ "jni-sys 0.3.1",
2233+ "log",
2234+ "ndk-sys",
2235+ "num_enum",
2236+ "raw-window-handle",
2237+ "thiserror 1.0.69",
2238+]
2239+
2240+[[package]]
2241+name = "ndk-context"
2242+version = "0.1.1"
2243+source = "registry+https://github.com/rust-lang/crates.io-index"
2244+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
2245+
2246+[[package]]
2247+name = "ndk-sys"
2248+version = "0.6.0+11769913"
2249+source = "registry+https://github.com/rust-lang/crates.io-index"
2250+checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
2251+dependencies = [
2252+ "jni-sys 0.3.1",
2253+]
2254+
2255+[[package]]
2256+name = "nix"
2257+version = "0.27.1"
2258+source = "registry+https://github.com/rust-lang/crates.io-index"
2259+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
2260+dependencies = [
2261+ "bitflags 2.11.1",
2262+ "cfg-if",
2263+ "libc",
2264+]
2265+
2266+[[package]]
2267+name = "nom"
2268+version = "7.1.3"
2269+source = "registry+https://github.com/rust-lang/crates.io-index"
2270+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
2271+dependencies = [
2272+ "memchr",
2273+ "minimal-lexical",
2274+]
2275+
2276+[[package]]
2277+name = "notify"
2278+version = "6.1.1"
2279+source = "registry+https://github.com/rust-lang/crates.io-index"
2280+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
2281+dependencies = [
2282+ "bitflags 2.11.1",
2283+ "crossbeam-channel",
2284+ "filetime",
2285+ "fsevent-sys",
2286+ "inotify",
2287+ "kqueue",
2288+ "libc",
2289+ "log",
2290+ "mio 0.8.11",
2291+ "walkdir",
2292+ "windows-sys 0.48.0",
2293+]
2294+
2295+[[package]]
2296+name = "notify-debouncer-mini"
2297+version = "0.4.1"
2298+source = "registry+https://github.com/rust-lang/crates.io-index"
2299+checksum = "5d40b221972a1fc5ef4d858a2f671fb34c75983eb385463dff3780eeff6a9d43"
2300+dependencies = [
2301+ "crossbeam-channel",
2302+ "log",
2303+ "notify",
2304+]
2305+
2306+[[package]]
2307+name = "nu-ansi-term"
2308+version = "0.50.3"
2309+source = "registry+https://github.com/rust-lang/crates.io-index"
2310+checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
2311+dependencies = [
2312+ "windows-sys 0.61.2",
2313+]
2314+
2315+[[package]]
2316+name = "num-traits"
2317+version = "0.2.19"
2318+source = "registry+https://github.com/rust-lang/crates.io-index"
2319+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
2320+dependencies = [
2321+ "autocfg",
2322+ "libm",
2323+]
2324+
2325+[[package]]
2326+name = "num_enum"
2327+version = "0.7.6"
2328+source = "registry+https://github.com/rust-lang/crates.io-index"
2329+checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26"
2330+dependencies = [
2331+ "num_enum_derive",
2332+ "rustversion",
2333+]
2334+
2335+[[package]]
2336+name = "num_enum_derive"
2337+version = "0.7.6"
2338+source = "registry+https://github.com/rust-lang/crates.io-index"
2339+checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8"
2340+dependencies = [
2341+ "proc-macro-crate",
2342+ "proc-macro2",
2343+ "quote",
2344+ "syn",
2345+]
2346+
2347+[[package]]
2348+name = "objc"
2349+version = "0.2.7"
2350+source = "registry+https://github.com/rust-lang/crates.io-index"
2351+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
2352+dependencies = [
2353+ "malloc_buf",
2354+]
2355+
2356+[[package]]
2357+name = "objc-sys"
2358+version = "0.3.5"
2359+source = "registry+https://github.com/rust-lang/crates.io-index"
2360+checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
2361+
2362+[[package]]
2363+name = "objc2"
2364+version = "0.5.2"
2365+source = "registry+https://github.com/rust-lang/crates.io-index"
2366+checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
2367+dependencies = [
2368+ "objc-sys",
2369+ "objc2-encode",
2370+]
2371+
2372+[[package]]
2373+name = "objc2"
2374+version = "0.6.4"
2375+source = "registry+https://github.com/rust-lang/crates.io-index"
2376+checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f"
2377+dependencies = [
2378+ "objc2-encode",
2379+]
2380+
2381+[[package]]
2382+name = "objc2-app-kit"
2383+version = "0.2.2"
2384+source = "registry+https://github.com/rust-lang/crates.io-index"
2385+checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
2386+dependencies = [
2387+ "bitflags 2.11.1",
2388+ "block2",
2389+ "libc",
2390+ "objc2 0.5.2",
2391+ "objc2-core-data",
2392+ "objc2-core-image",
2393+ "objc2-foundation 0.2.2",
2394+ "objc2-quartz-core 0.2.2",
2395+]
2396+
2397+[[package]]
2398+name = "objc2-cloud-kit"
2399+version = "0.2.2"
2400+source = "registry+https://github.com/rust-lang/crates.io-index"
2401+checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009"
2402+dependencies = [
2403+ "bitflags 2.11.1",
2404+ "block2",
2405+ "objc2 0.5.2",
2406+ "objc2-core-location",
2407+ "objc2-foundation 0.2.2",
2408+]
2409+
2410+[[package]]
2411+name = "objc2-contacts"
2412+version = "0.2.2"
2413+source = "registry+https://github.com/rust-lang/crates.io-index"
2414+checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889"
2415+dependencies = [
2416+ "block2",
2417+ "objc2 0.5.2",
2418+ "objc2-foundation 0.2.2",
2419+]
2420+
2421+[[package]]
2422+name = "objc2-core-data"
2423+version = "0.2.2"
2424+source = "registry+https://github.com/rust-lang/crates.io-index"
2425+checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
2426+dependencies = [
2427+ "bitflags 2.11.1",
2428+ "block2",
2429+ "objc2 0.5.2",
2430+ "objc2-foundation 0.2.2",
2431+]
2432+
2433+[[package]]
2434+name = "objc2-core-foundation"
2435+version = "0.3.2"
2436+source = "registry+https://github.com/rust-lang/crates.io-index"
2437+checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
2438+dependencies = [
2439+ "bitflags 2.11.1",
2440+ "dispatch2",
2441+ "objc2 0.6.4",
2442+]
2443+
2444+[[package]]
2445+name = "objc2-core-graphics"
2446+version = "0.3.2"
2447+source = "registry+https://github.com/rust-lang/crates.io-index"
2448+checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807"
2449+dependencies = [
2450+ "bitflags 2.11.1",
2451+ "dispatch2",
2452+ "objc2 0.6.4",
2453+ "objc2-core-foundation",
2454+ "objc2-io-surface",
2455+]
2456+
2457+[[package]]
2458+name = "objc2-core-image"
2459+version = "0.2.2"
2460+source = "registry+https://github.com/rust-lang/crates.io-index"
2461+checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
2462+dependencies = [
2463+ "block2",
2464+ "objc2 0.5.2",
2465+ "objc2-foundation 0.2.2",
2466+ "objc2-metal",
2467+]
2468+
2469+[[package]]
2470+name = "objc2-core-location"
2471+version = "0.2.2"
2472+source = "registry+https://github.com/rust-lang/crates.io-index"
2473+checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781"
2474+dependencies = [
2475+ "block2",
2476+ "objc2 0.5.2",
2477+ "objc2-contacts",
2478+ "objc2-foundation 0.2.2",
2479+]
2480+
2481+[[package]]
2482+name = "objc2-encode"
2483+version = "4.1.0"
2484+source = "registry+https://github.com/rust-lang/crates.io-index"
2485+checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
2486+
2487+[[package]]
2488+name = "objc2-foundation"
2489+version = "0.2.2"
2490+source = "registry+https://github.com/rust-lang/crates.io-index"
2491+checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
2492+dependencies = [
2493+ "bitflags 2.11.1",
2494+ "block2",
2495+ "dispatch",
2496+ "libc",
2497+ "objc2 0.5.2",
2498+]
2499+
2500+[[package]]
2501+name = "objc2-foundation"
2502+version = "0.3.2"
2503+source = "registry+https://github.com/rust-lang/crates.io-index"
2504+checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
2505+dependencies = [
2506+ "bitflags 2.11.1",
2507+ "objc2 0.6.4",
2508+ "objc2-core-foundation",
2509+]
2510+
2511+[[package]]
2512+name = "objc2-io-surface"
2513+version = "0.3.2"
2514+source = "registry+https://github.com/rust-lang/crates.io-index"
2515+checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d"
2516+dependencies = [
2517+ "bitflags 2.11.1",
2518+ "objc2 0.6.4",
2519+ "objc2-core-foundation",
2520+]
2521+
2522+[[package]]
2523+name = "objc2-link-presentation"
2524+version = "0.2.2"
2525+source = "registry+https://github.com/rust-lang/crates.io-index"
2526+checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398"
2527+dependencies = [
2528+ "block2",
2529+ "objc2 0.5.2",
2530+ "objc2-app-kit",
2531+ "objc2-foundation 0.2.2",
2532+]
2533+
2534+[[package]]
2535+name = "objc2-metal"
2536+version = "0.2.2"
2537+source = "registry+https://github.com/rust-lang/crates.io-index"
2538+checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
2539+dependencies = [
2540+ "bitflags 2.11.1",
2541+ "block2",
2542+ "objc2 0.5.2",
2543+ "objc2-foundation 0.2.2",
2544+]
2545+
2546+[[package]]
2547+name = "objc2-quartz-core"
2548+version = "0.2.2"
2549+source = "registry+https://github.com/rust-lang/crates.io-index"
2550+checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
2551+dependencies = [
2552+ "bitflags 2.11.1",
2553+ "block2",
2554+ "objc2 0.5.2",
2555+ "objc2-foundation 0.2.2",
2556+ "objc2-metal",
2557+]
2558+
2559+[[package]]
2560+name = "objc2-quartz-core"
2561+version = "0.3.2"
2562+source = "registry+https://github.com/rust-lang/crates.io-index"
2563+checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f"
2564+dependencies = [
2565+ "bitflags 2.11.1",
2566+ "objc2 0.6.4",
2567+ "objc2-core-foundation",
2568+ "objc2-foundation 0.3.2",
2569+]
2570+
2571+[[package]]
2572+name = "objc2-symbols"
2573+version = "0.2.2"
2574+source = "registry+https://github.com/rust-lang/crates.io-index"
2575+checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc"
2576+dependencies = [
2577+ "objc2 0.5.2",
2578+ "objc2-foundation 0.2.2",
2579+]
2580+
2581+[[package]]
2582+name = "objc2-ui-kit"
2583+version = "0.2.2"
2584+source = "registry+https://github.com/rust-lang/crates.io-index"
2585+checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f"
2586+dependencies = [
2587+ "bitflags 2.11.1",
2588+ "block2",
2589+ "objc2 0.5.2",
2590+ "objc2-cloud-kit",
2591+ "objc2-core-data",
2592+ "objc2-core-image",
2593+ "objc2-core-location",
2594+ "objc2-foundation 0.2.2",
2595+ "objc2-link-presentation",
2596+ "objc2-quartz-core 0.2.2",
2597+ "objc2-symbols",
2598+ "objc2-uniform-type-identifiers",
2599+ "objc2-user-notifications",
2600+]
2601+
2602+[[package]]
2603+name = "objc2-uniform-type-identifiers"
2604+version = "0.2.2"
2605+source = "registry+https://github.com/rust-lang/crates.io-index"
2606+checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe"
2607+dependencies = [
2608+ "block2",
2609+ "objc2 0.5.2",
2610+ "objc2-foundation 0.2.2",
2611+]
2612+
2613+[[package]]
2614+name = "objc2-user-notifications"
2615+version = "0.2.2"
2616+source = "registry+https://github.com/rust-lang/crates.io-index"
2617+checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3"
2618+dependencies = [
2619+ "bitflags 2.11.1",
2620+ "block2",
2621+ "objc2 0.5.2",
2622+ "objc2-core-location",
2623+ "objc2-foundation 0.2.2",
2624+]
2625+
2626+[[package]]
2627+name = "once_cell"
2628+version = "1.21.4"
2629+source = "registry+https://github.com/rust-lang/crates.io-index"
2630+checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
2631+
2632+[[package]]
2633+name = "once_cell_polyfill"
2634+version = "1.70.2"
2635+source = "registry+https://github.com/rust-lang/crates.io-index"
2636+checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
2637+
2638+[[package]]
2639+name = "oorandom"
2640+version = "11.1.5"
2641+source = "registry+https://github.com/rust-lang/crates.io-index"
2642+checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
2643+
2644+[[package]]
2645+name = "orbclient"
2646+version = "0.3.55"
2647+source = "registry+https://github.com/rust-lang/crates.io-index"
2648+checksum = "5df339f526ea9a60e371768d50efc2f2508c7203290731565d1f7a6f71d21747"
2649+dependencies = [
2650+ "libc",
2651+ "libredox",
2652+]
2653+
2654+[[package]]
2655+name = "ordered-float"
2656+version = "5.3.0"
2657+source = "registry+https://github.com/rust-lang/crates.io-index"
2658+checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e"
2659+dependencies = [
2660+ "num-traits",
2661+]
2662+
2663+[[package]]
2664+name = "owned_ttf_parser"
2665+version = "0.25.1"
2666+source = "registry+https://github.com/rust-lang/crates.io-index"
2667+checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b"
2668+dependencies = [
2669+ "ttf-parser",
2670+]
2671+
2672+[[package]]
2673+name = "parking"
2674+version = "2.2.1"
2675+source = "registry+https://github.com/rust-lang/crates.io-index"
2676+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
2677+
2678+[[package]]
2679+name = "parking_lot"
2680+version = "0.12.5"
2681+source = "registry+https://github.com/rust-lang/crates.io-index"
2682+checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
2683+dependencies = [
2684+ "lock_api",
2685+ "parking_lot_core",
2686+]
2687+
2688+[[package]]
2689+name = "parking_lot_core"
2690+version = "0.9.12"
2691+source = "registry+https://github.com/rust-lang/crates.io-index"
2692+checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
2693+dependencies = [
2694+ "cfg-if",
2695+ "libc",
2696+ "redox_syscall 0.5.18",
2697+ "smallvec",
2698+ "windows-link",
2699+]
2700+
2701+[[package]]
2702+name = "paste"
2703+version = "1.0.15"
2704+source = "registry+https://github.com/rust-lang/crates.io-index"
2705+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
2706+
2707+[[package]]
2708+name = "pin-project"
2709+version = "1.1.13"
2710+source = "registry+https://github.com/rust-lang/crates.io-index"
2711+checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924"
2712+dependencies = [
2713+ "pin-project-internal",
2714+]
2715+
2716+[[package]]
2717+name = "pin-project-internal"
2718+version = "1.1.13"
2719+source = "registry+https://github.com/rust-lang/crates.io-index"
2720+checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b"
2721+dependencies = [
2722+ "proc-macro2",
2723+ "quote",
2724+ "syn",
2725+]
2726+
2727+[[package]]
2728+name = "pin-project-lite"
2729+version = "0.2.17"
2730+source = "registry+https://github.com/rust-lang/crates.io-index"
2731+checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
2732+
2733+[[package]]
2734+name = "pin-utils"
2735+version = "0.1.0"
2736+source = "registry+https://github.com/rust-lang/crates.io-index"
2737+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
2738+
2739+[[package]]
2740+name = "piper"
2741+version = "0.2.5"
2742+source = "registry+https://github.com/rust-lang/crates.io-index"
2743+checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1"
2744+dependencies = [
2745+ "atomic-waker",
2746+ "fastrand",
2747+ "futures-io",
2748+]
2749+
2750+[[package]]
2751+name = "pipewire"
2752+version = "0.8.0"
2753+source = "registry+https://github.com/rust-lang/crates.io-index"
2754+checksum = "08e645ba5c45109106d56610b3ee60eb13a6f2beb8b74f8dc8186cf261788dda"
2755+dependencies = [
2756+ "anyhow",
2757+ "bitflags 2.11.1",
2758+ "libc",
2759+ "libspa",
2760+ "libspa-sys",
2761+ "nix",
2762+ "once_cell",
2763+ "pipewire-sys",
2764+ "thiserror 1.0.69",
2765+]
2766+
2767+[[package]]
2768+name = "pipewire-filter"
2769+version = "0.1.0"
2770+dependencies = [
2771+ "libspa",
2772+ "libspa-sys",
2773+ "pipewire",
2774+ "pipewire-sys",
2775+ "thiserror 2.0.18",
2776+]
2777+
2778+[[package]]
2779+name = "pipewire-sys"
2780+version = "0.8.0"
2781+source = "registry+https://github.com/rust-lang/crates.io-index"
2782+checksum = "849e188f90b1dda88fe2bfe1ad31fe5f158af2c98f80fb5d13726c44f3f01112"
2783+dependencies = [
2784+ "bindgen",
2785+ "libspa-sys",
2786+ "system-deps",
2787+]
2788+
2789+[[package]]
2790+name = "pkg-config"
2791+version = "0.3.33"
2792+source = "registry+https://github.com/rust-lang/crates.io-index"
2793+checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e"
2794+
2795+[[package]]
2796+name = "plain"
2797+version = "0.2.3"
2798+source = "registry+https://github.com/rust-lang/crates.io-index"
2799+checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
2800+
2801+[[package]]
2802+name = "polling"
2803+version = "3.11.0"
2804+source = "registry+https://github.com/rust-lang/crates.io-index"
2805+checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
2806+dependencies = [
2807+ "cfg-if",
2808+ "concurrent-queue",
2809+ "hermit-abi",
2810+ "pin-project-lite",
2811+ "rustix 1.1.4",
2812+ "windows-sys 0.61.2",
2813+]
2814+
2815+[[package]]
2816+name = "portable-atomic"
2817+version = "1.13.1"
2818+source = "registry+https://github.com/rust-lang/crates.io-index"
2819+checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
2820+
2821+[[package]]
2822+name = "portable-atomic-util"
2823+version = "0.2.7"
2824+source = "registry+https://github.com/rust-lang/crates.io-index"
2825+checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618"
2826+dependencies = [
2827+ "portable-atomic",
2828+]
2829+
2830+[[package]]
2831+name = "presser"
2832+version = "0.3.1"
2833+source = "registry+https://github.com/rust-lang/crates.io-index"
2834+checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
2835+
2836+[[package]]
2837+name = "proc-macro-crate"
2838+version = "3.5.0"
2839+source = "registry+https://github.com/rust-lang/crates.io-index"
2840+checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
2841+dependencies = [
2842+ "toml_edit 0.25.11+spec-1.1.0",
2843+]
2844+
2845+[[package]]
2846+name = "proc-macro2"
2847+version = "1.0.106"
2848+source = "registry+https://github.com/rust-lang/crates.io-index"
2849+checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
2850+dependencies = [
2851+ "unicode-ident",
2852+]
2853+
2854+[[package]]
2855+name = "profiling"
2856+version = "1.0.18"
2857+source = "registry+https://github.com/rust-lang/crates.io-index"
2858+checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5"
2859+
2860+[[package]]
2861+name = "quick-xml"
2862+version = "0.39.4"
2863+source = "registry+https://github.com/rust-lang/crates.io-index"
2864+checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e"
2865+dependencies = [
2866+ "memchr",
2867+]
2868+
2869+[[package]]
2870+name = "quote"
2871+version = "1.0.45"
2872+source = "registry+https://github.com/rust-lang/crates.io-index"
2873+checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
2874+dependencies = [
2875+ "proc-macro2",
2876+]
2877+
2878+[[package]]
2879+name = "r-efi"
2880+version = "5.3.0"
2881+source = "registry+https://github.com/rust-lang/crates.io-index"
2882+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
2883+
2884+[[package]]
2885+name = "range-alloc"
2886+version = "0.1.5"
2887+source = "registry+https://github.com/rust-lang/crates.io-index"
2888+checksum = "ca45419789ae5a7899559e9512e58ca889e41f04f1f2445e9f4b290ceccd1d08"
2889+
2890+[[package]]
2891+name = "rangemap"
2892+version = "1.7.1"
2893+source = "registry+https://github.com/rust-lang/crates.io-index"
2894+checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68"
2895+
2896+[[package]]
2897+name = "ratatui"
2898+version = "0.28.1"
2899+source = "registry+https://github.com/rust-lang/crates.io-index"
2900+checksum = "fdef7f9be5c0122f890d58bdf4d964349ba6a6161f705907526d891efabba57d"
2901+dependencies = [
2902+ "bitflags 2.11.1",
2903+ "cassowary",
2904+ "compact_str",
2905+ "crossterm",
2906+ "instability",
2907+ "itertools 0.13.0",
2908+ "lru 0.12.5",
2909+ "paste",
2910+ "strum",
2911+ "strum_macros",
2912+ "unicode-segmentation",
2913+ "unicode-truncate",
2914+ "unicode-width 0.1.14",
2915+]
2916+
2917+[[package]]
2918+name = "raw-window-handle"
2919+version = "0.6.2"
2920+source = "registry+https://github.com/rust-lang/crates.io-index"
2921+checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
2922+
2923+[[package]]
2924+name = "read-fonts"
2925+version = "0.35.0"
2926+source = "registry+https://github.com/rust-lang/crates.io-index"
2927+checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358"
2928+dependencies = [
2929+ "bytemuck",
2930+ "core_maths",
2931+ "font-types 0.10.1",
2932+]
2933+
2934+[[package]]
2935+name = "read-fonts"
2936+version = "0.37.0"
2937+source = "registry+https://github.com/rust-lang/crates.io-index"
2938+checksum = "7b634fabf032fab15307ffd272149b622260f55974d9fad689292a5d33df02e5"
2939+dependencies = [
2940+ "bytemuck",
2941+ "font-types 0.11.3",
2942+]
2943+
2944+[[package]]
2945+name = "redox_syscall"
2946+version = "0.4.1"
2947+source = "registry+https://github.com/rust-lang/crates.io-index"
2948+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
2949+dependencies = [
2950+ "bitflags 1.3.2",
2951+]
2952+
2953+[[package]]
2954+name = "redox_syscall"
2955+version = "0.5.18"
2956+source = "registry+https://github.com/rust-lang/crates.io-index"
2957+checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
2958+dependencies = [
2959+ "bitflags 2.11.1",
2960+]
2961+
2962+[[package]]
2963+name = "redox_syscall"
2964+version = "0.7.5"
2965+source = "registry+https://github.com/rust-lang/crates.io-index"
2966+checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b"
2967+dependencies = [
2968+ "bitflags 2.11.1",
2969+]
2970+
2971+[[package]]
2972+name = "regex"
2973+version = "1.12.3"
2974+source = "registry+https://github.com/rust-lang/crates.io-index"
2975+checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
2976+dependencies = [
2977+ "aho-corasick",
2978+ "memchr",
2979+ "regex-automata",
2980+ "regex-syntax",
2981+]
2982+
2983+[[package]]
2984+name = "regex-automata"
2985+version = "0.4.14"
2986+source = "registry+https://github.com/rust-lang/crates.io-index"
2987+checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
2988+dependencies = [
2989+ "aho-corasick",
2990+ "memchr",
2991+ "regex-syntax",
2992+]
2993+
2994+[[package]]
2995+name = "regex-syntax"
2996+version = "0.8.10"
2997+source = "registry+https://github.com/rust-lang/crates.io-index"
2998+checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
2999+
3000+[[package]]
3001+name = "renderdoc-sys"
3002+version = "1.1.0"
3003+source = "registry+https://github.com/rust-lang/crates.io-index"
3004+checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832"
3005+
3006+[[package]]
3007+name = "roxmltree"
3008+version = "0.20.0"
3009+source = "registry+https://github.com/rust-lang/crates.io-index"
3010+checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97"
3011+
3012+[[package]]
3013+name = "rtrb"
3014+version = "0.3.4"
3015+source = "registry+https://github.com/rust-lang/crates.io-index"
3016+checksum = "4ade083ccbb4bf536df69d1f6432cc23deb7acccff86b183f3923a6fd56a1153"
3017+
3018+[[package]]
3019+name = "rustc-hash"
3020+version = "1.1.0"
3021+source = "registry+https://github.com/rust-lang/crates.io-index"
3022+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
3023+
3024+[[package]]
3025+name = "rustc-hash"
3026+version = "2.1.2"
3027+source = "registry+https://github.com/rust-lang/crates.io-index"
3028+checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
3029+
3030+[[package]]
3031+name = "rustc_version"
3032+version = "0.4.1"
3033+source = "registry+https://github.com/rust-lang/crates.io-index"
3034+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
3035+dependencies = [
3036+ "semver",
3037+]
3038+
3039+[[package]]
3040+name = "rustix"
3041+version = "0.38.44"
3042+source = "registry+https://github.com/rust-lang/crates.io-index"
3043+checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
3044+dependencies = [
3045+ "bitflags 2.11.1",
3046+ "errno",
3047+ "libc",
3048+ "linux-raw-sys 0.4.15",
3049+ "windows-sys 0.59.0",
3050+]
3051+
3052+[[package]]
3053+name = "rustix"
3054+version = "1.1.4"
3055+source = "registry+https://github.com/rust-lang/crates.io-index"
3056+checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
3057+dependencies = [
3058+ "bitflags 2.11.1",
3059+ "errno",
3060+ "libc",
3061+ "linux-raw-sys 0.12.1",
3062+ "windows-sys 0.61.2",
3063+]
3064+
3065+[[package]]
3066+name = "rustversion"
3067+version = "1.0.22"
3068+source = "registry+https://github.com/rust-lang/crates.io-index"
3069+checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
3070+
3071+[[package]]
3072+name = "ryu"
3073+version = "1.0.23"
3074+source = "registry+https://github.com/rust-lang/crates.io-index"
3075+checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
3076+
3077+[[package]]
3078+name = "same-file"
3079+version = "1.0.6"
3080+source = "registry+https://github.com/rust-lang/crates.io-index"
3081+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
3082+dependencies = [
3083+ "winapi-util",
3084+]
3085+
3086+[[package]]
3087+name = "scoped-tls"
3088+version = "1.0.1"
3089+source = "registry+https://github.com/rust-lang/crates.io-index"
3090+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
3091+
3092+[[package]]
3093+name = "scopeguard"
3094+version = "1.2.0"
3095+source = "registry+https://github.com/rust-lang/crates.io-index"
3096+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
3097+
3098+[[package]]
3099+name = "sctk-adwaita"
3100+version = "0.10.1"
3101+source = "registry+https://github.com/rust-lang/crates.io-index"
3102+checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec"
3103+dependencies = [
3104+ "ab_glyph",
3105+ "log",
3106+ "memmap2",
3107+ "smithay-client-toolkit 0.19.2",
3108+ "tiny-skia",
3109+]
3110+
3111+[[package]]
3112+name = "self_cell"
3113+version = "1.2.2"
3114+source = "registry+https://github.com/rust-lang/crates.io-index"
3115+checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89"
3116+
3117+[[package]]
3118+name = "semver"
3119+version = "1.0.28"
3120+source = "registry+https://github.com/rust-lang/crates.io-index"
3121+checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
3122+
3123+[[package]]
3124+name = "serde"
3125+version = "1.0.228"
3126+source = "registry+https://github.com/rust-lang/crates.io-index"
3127+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
3128+dependencies = [
3129+ "serde_core",
3130+ "serde_derive",
3131+]
3132+
3133+[[package]]
3134+name = "serde_core"
3135+version = "1.0.228"
3136+source = "registry+https://github.com/rust-lang/crates.io-index"
3137+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
3138+dependencies = [
3139+ "serde_derive",
3140+]
3141+
3142+[[package]]
3143+name = "serde_derive"
3144+version = "1.0.228"
3145+source = "registry+https://github.com/rust-lang/crates.io-index"
3146+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
3147+dependencies = [
3148+ "proc-macro2",
3149+ "quote",
3150+ "syn",
3151+]
3152+
3153+[[package]]
3154+name = "serde_json"
3155+version = "1.0.150"
3156+source = "registry+https://github.com/rust-lang/crates.io-index"
3157+checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
3158+dependencies = [
3159+ "itoa",
3160+ "memchr",
3161+ "serde",
3162+ "serde_core",
3163+ "zmij",
3164+]
3165+
3166+[[package]]
3167+name = "serde_spanned"
3168+version = "0.6.9"
3169+source = "registry+https://github.com/rust-lang/crates.io-index"
3170+checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
3171+dependencies = [
3172+ "serde",
3173+]
3174+
3175+[[package]]
3176+name = "sharded-slab"
3177+version = "0.1.7"
3178+source = "registry+https://github.com/rust-lang/crates.io-index"
3179+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
3180+dependencies = [
3181+ "lazy_static",
3182+]
3183+
3184+[[package]]
3185+name = "shlex"
3186+version = "1.3.0"
3187+source = "registry+https://github.com/rust-lang/crates.io-index"
3188+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
3189+
3190+[[package]]
3191+name = "signal-hook"
3192+version = "0.3.18"
3193+source = "registry+https://github.com/rust-lang/crates.io-index"
3194+checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"
3195+dependencies = [
3196+ "libc",
3197+ "signal-hook-registry",
3198+]
3199+
3200+[[package]]
3201+name = "signal-hook-mio"
3202+version = "0.2.5"
3203+source = "registry+https://github.com/rust-lang/crates.io-index"
3204+checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc"
3205+dependencies = [
3206+ "libc",
3207+ "mio 1.2.0",
3208+ "signal-hook",
3209+]
3210+
3211+[[package]]
3212+name = "signal-hook-registry"
3213+version = "1.4.8"
3214+source = "registry+https://github.com/rust-lang/crates.io-index"
3215+checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
3216+dependencies = [
3217+ "errno",
3218+ "libc",
3219+]
3220+
3221+[[package]]
3222+name = "simd_cesu8"
3223+version = "1.1.1"
3224+source = "registry+https://github.com/rust-lang/crates.io-index"
3225+checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33"
3226+dependencies = [
3227+ "rustc_version",
3228+ "simdutf8",
3229+]
3230+
3231+[[package]]
3232+name = "simdutf8"
3233+version = "0.1.5"
3234+source = "registry+https://github.com/rust-lang/crates.io-index"
3235+checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
3236+
3237+[[package]]
3238+name = "skrifa"
3239+version = "0.37.0"
3240+source = "registry+https://github.com/rust-lang/crates.io-index"
3241+checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841"
3242+dependencies = [
3243+ "bytemuck",
3244+ "read-fonts 0.35.0",
3245+]
3246+
3247+[[package]]
3248+name = "skrifa"
3249+version = "0.40.0"
3250+source = "registry+https://github.com/rust-lang/crates.io-index"
3251+checksum = "7fbdfe3d2475fbd7ddd1f3e5cf8288a30eb3e5f95832829570cd88115a7434ac"
3252+dependencies = [
3253+ "bytemuck",
3254+ "read-fonts 0.37.0",
3255+]
3256+
3257+[[package]]
3258+name = "slab"
3259+version = "0.4.12"
3260+source = "registry+https://github.com/rust-lang/crates.io-index"
3261+checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
3262+
3263+[[package]]
3264+name = "slotmap"
3265+version = "1.1.1"
3266+source = "registry+https://github.com/rust-lang/crates.io-index"
3267+checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038"
3268+dependencies = [
3269+ "version_check",
3270+]
3271+
3272+[[package]]
3273+name = "smallvec"
3274+version = "1.15.1"
3275+source = "registry+https://github.com/rust-lang/crates.io-index"
3276+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
3277+
3278+[[package]]
3279+name = "smithay-client-toolkit"
3280+version = "0.19.2"
3281+source = "registry+https://github.com/rust-lang/crates.io-index"
3282+checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016"
3283+dependencies = [
3284+ "bitflags 2.11.1",
3285+ "calloop 0.13.0",
3286+ "calloop-wayland-source 0.3.0",
3287+ "cursor-icon",
3288+ "libc",
3289+ "log",
3290+ "memmap2",
3291+ "rustix 0.38.44",
3292+ "thiserror 1.0.69",
3293+ "wayland-backend",
3294+ "wayland-client",
3295+ "wayland-csd-frame",
3296+ "wayland-cursor",
3297+ "wayland-protocols",
3298+ "wayland-protocols-wlr",
3299+ "wayland-scanner",
3300+ "xkeysym",
3301+]
3302+
3303+[[package]]
3304+name = "smithay-client-toolkit"
3305+version = "0.20.0"
3306+source = "registry+https://github.com/rust-lang/crates.io-index"
3307+checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0"
3308+dependencies = [
3309+ "bitflags 2.11.1",
3310+ "calloop 0.14.4",
3311+ "calloop-wayland-source 0.4.1",
3312+ "cursor-icon",
3313+ "libc",
3314+ "log",
3315+ "memmap2",
3316+ "rustix 1.1.4",
3317+ "thiserror 2.0.18",
3318+ "wayland-backend",
3319+ "wayland-client",
3320+ "wayland-csd-frame",
3321+ "wayland-cursor",
3322+ "wayland-protocols",
3323+ "wayland-protocols-experimental",
3324+ "wayland-protocols-misc",
3325+ "wayland-protocols-wlr",
3326+ "wayland-scanner",
3327+ "xkeysym",
3328+]
3329+
3330+[[package]]
3331+name = "smithay-clipboard"
3332+version = "0.7.3"
3333+source = "registry+https://github.com/rust-lang/crates.io-index"
3334+checksum = "71704c03f739f7745053bde45fa203a46c58d25bc5c4efba1d9a60e9dba81226"
3335+dependencies = [
3336+ "libc",
3337+ "smithay-client-toolkit 0.20.0",
3338+ "wayland-backend",
3339+]
3340+
3341+[[package]]
3342+name = "smol"
3343+version = "2.0.2"
3344+source = "registry+https://github.com/rust-lang/crates.io-index"
3345+checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f"
3346+dependencies = [
3347+ "async-channel",
3348+ "async-executor",
3349+ "async-fs",
3350+ "async-io",
3351+ "async-lock",
3352+ "async-net",
3353+ "async-process",
3354+ "blocking",
3355+ "futures-lite",
3356+]
3357+
3358+[[package]]
3359+name = "smol_str"
3360+version = "0.2.2"
3361+source = "registry+https://github.com/rust-lang/crates.io-index"
3362+checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead"
3363+dependencies = [
3364+ "serde",
3365+]
3366+
3367+[[package]]
3368+name = "softbuffer"
3369+version = "0.4.8"
3370+source = "registry+https://github.com/rust-lang/crates.io-index"
3371+checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3"
3372+dependencies = [
3373+ "bytemuck",
3374+ "fastrand",
3375+ "js-sys",
3376+ "memmap2",
3377+ "ndk",
3378+ "objc2 0.6.4",
3379+ "objc2-core-foundation",
3380+ "objc2-core-graphics",
3381+ "objc2-foundation 0.3.2",
3382+ "objc2-quartz-core 0.3.2",
3383+ "raw-window-handle",
3384+ "redox_syscall 0.5.18",
3385+ "rustix 1.1.4",
3386+ "tracing",
3387+ "wasm-bindgen",
3388+ "wayland-backend",
3389+ "wayland-client",
3390+ "wayland-sys",
3391+ "web-sys",
3392+ "windows-sys 0.61.2",
3393+]
3394+
3395+[[package]]
3396+name = "spirv"
3397+version = "0.3.0+sdk-1.3.268.0"
3398+source = "registry+https://github.com/rust-lang/crates.io-index"
3399+checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
3400+dependencies = [
3401+ "bitflags 2.11.1",
3402+]
3403+
3404+[[package]]
3405+name = "static_assertions"
3406+version = "1.1.0"
3407+source = "registry+https://github.com/rust-lang/crates.io-index"
3408+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
3409+
3410+[[package]]
3411+name = "strict-num"
3412+version = "0.1.1"
3413+source = "registry+https://github.com/rust-lang/crates.io-index"
3414+checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
3415+
3416+[[package]]
3417+name = "strsim"
3418+version = "0.11.1"
3419+source = "registry+https://github.com/rust-lang/crates.io-index"
3420+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
3421+
3422+[[package]]
3423+name = "strum"
3424+version = "0.26.3"
3425+source = "registry+https://github.com/rust-lang/crates.io-index"
3426+checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
3427+dependencies = [
3428+ "strum_macros",
3429+]
3430+
3431+[[package]]
3432+name = "strum_macros"
3433+version = "0.26.4"
3434+source = "registry+https://github.com/rust-lang/crates.io-index"
3435+checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
3436+dependencies = [
3437+ "heck",
3438+ "proc-macro2",
3439+ "quote",
3440+ "rustversion",
3441+ "syn",
3442+]
3443+
3444+[[package]]
3445+name = "svg_fmt"
3446+version = "0.4.5"
3447+source = "registry+https://github.com/rust-lang/crates.io-index"
3448+checksum = "0193cc4331cfd2f3d2011ef287590868599a2f33c3e69bc22c1a3d3acf9e02fb"
3449+
3450+[[package]]
3451+name = "swash"
3452+version = "0.2.7"
3453+source = "registry+https://github.com/rust-lang/crates.io-index"
3454+checksum = "842f3cd369c2ba38966204f983eaa5e54a8e84a7d7159ed36ade2b6c335aae64"
3455+dependencies = [
3456+ "skrifa 0.40.0",
3457+ "yazi",
3458+ "zeno",
3459+]
3460+
3461+[[package]]
3462+name = "syn"
3463+version = "2.0.117"
3464+source = "registry+https://github.com/rust-lang/crates.io-index"
3465+checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
3466+dependencies = [
3467+ "proc-macro2",
3468+ "quote",
3469+ "unicode-ident",
3470+]
3471+
3472+[[package]]
3473+name = "sys-locale"
3474+version = "0.3.2"
3475+source = "registry+https://github.com/rust-lang/crates.io-index"
3476+checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4"
3477+dependencies = [
3478+ "libc",
3479+]
3480+
3481+[[package]]
3482+name = "system-deps"
3483+version = "6.2.2"
3484+source = "registry+https://github.com/rust-lang/crates.io-index"
3485+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
3486+dependencies = [
3487+ "cfg-expr",
3488+ "heck",
3489+ "pkg-config",
3490+ "toml",
3491+ "version-compare",
3492+]
3493+
3494+[[package]]
3495+name = "target-lexicon"
3496+version = "0.12.16"
3497+source = "registry+https://github.com/rust-lang/crates.io-index"
3498+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
3499+
3500+[[package]]
3501+name = "termcolor"
3502+version = "1.4.1"
3503+source = "registry+https://github.com/rust-lang/crates.io-index"
3504+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
3505+dependencies = [
3506+ "winapi-util",
3507+]
3508+
3509+[[package]]
3510+name = "thiserror"
3511+version = "1.0.69"
3512+source = "registry+https://github.com/rust-lang/crates.io-index"
3513+checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
3514+dependencies = [
3515+ "thiserror-impl 1.0.69",
3516+]
3517+
3518+[[package]]
3519+name = "thiserror"
3520+version = "2.0.18"
3521+source = "registry+https://github.com/rust-lang/crates.io-index"
3522+checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
3523+dependencies = [
3524+ "thiserror-impl 2.0.18",
3525+]
3526+
3527+[[package]]
3528+name = "thiserror-impl"
3529+version = "1.0.69"
3530+source = "registry+https://github.com/rust-lang/crates.io-index"
3531+checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
3532+dependencies = [
3533+ "proc-macro2",
3534+ "quote",
3535+ "syn",
3536+]
3537+
3538+[[package]]
3539+name = "thiserror-impl"
3540+version = "2.0.18"
3541+source = "registry+https://github.com/rust-lang/crates.io-index"
3542+checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
3543+dependencies = [
3544+ "proc-macro2",
3545+ "quote",
3546+ "syn",
3547+]
3548+
3549+[[package]]
3550+name = "thread_local"
3551+version = "1.1.9"
3552+source = "registry+https://github.com/rust-lang/crates.io-index"
3553+checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
3554+dependencies = [
3555+ "cfg-if",
3556+]
3557+
3558+[[package]]
3559+name = "tiny-skia"
3560+version = "0.11.4"
3561+source = "registry+https://github.com/rust-lang/crates.io-index"
3562+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
3563+dependencies = [
3564+ "arrayref",
3565+ "arrayvec",
3566+ "bytemuck",
3567+ "cfg-if",
3568+ "log",
3569+ "tiny-skia-path",
3570+]
3571+
3572+[[package]]
3573+name = "tiny-skia-path"
3574+version = "0.11.4"
3575+source = "registry+https://github.com/rust-lang/crates.io-index"
3576+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
3577+dependencies = [
3578+ "arrayref",
3579+ "bytemuck",
3580+ "strict-num",
3581+]
3582+
3583+[[package]]
3584+name = "tinytemplate"
3585+version = "1.2.1"
3586+source = "registry+https://github.com/rust-lang/crates.io-index"
3587+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
3588+dependencies = [
3589+ "serde",
3590+ "serde_json",
3591+]
3592+
3593+[[package]]
3594+name = "tinyvec"
3595+version = "1.11.0"
3596+source = "registry+https://github.com/rust-lang/crates.io-index"
3597+checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3"
3598+dependencies = [
3599+ "tinyvec_macros",
3600+]
3601+
3602+[[package]]
3603+name = "tinyvec_macros"
3604+version = "0.1.1"
3605+source = "registry+https://github.com/rust-lang/crates.io-index"
3606+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
3607+
3608+[[package]]
3609+name = "toml"
3610+version = "0.8.23"
3611+source = "registry+https://github.com/rust-lang/crates.io-index"
3612+checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
3613+dependencies = [
3614+ "serde",
3615+ "serde_spanned",
3616+ "toml_datetime 0.6.11",
3617+ "toml_edit 0.22.27",
3618+]
3619+
3620+[[package]]
3621+name = "toml_datetime"
3622+version = "0.6.11"
3623+source = "registry+https://github.com/rust-lang/crates.io-index"
3624+checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
3625+dependencies = [
3626+ "serde",
3627+]
3628+
3629+[[package]]
3630+name = "toml_datetime"
3631+version = "1.1.1+spec-1.1.0"
3632+source = "registry+https://github.com/rust-lang/crates.io-index"
3633+checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
3634+dependencies = [
3635+ "serde_core",
3636+]
3637+
3638+[[package]]
3639+name = "toml_edit"
3640+version = "0.22.27"
3641+source = "registry+https://github.com/rust-lang/crates.io-index"
3642+checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
3643+dependencies = [
3644+ "indexmap",
3645+ "serde",
3646+ "serde_spanned",
3647+ "toml_datetime 0.6.11",
3648+ "toml_write",
3649+ "winnow 0.7.15",
3650+]
3651+
3652+[[package]]
3653+name = "toml_edit"
3654+version = "0.25.11+spec-1.1.0"
3655+source = "registry+https://github.com/rust-lang/crates.io-index"
3656+checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b"
3657+dependencies = [
3658+ "indexmap",
3659+ "toml_datetime 1.1.1+spec-1.1.0",
3660+ "toml_parser",
3661+ "winnow 1.0.3",
3662+]
3663+
3664+[[package]]
3665+name = "toml_parser"
3666+version = "1.1.2+spec-1.1.0"
3667+source = "registry+https://github.com/rust-lang/crates.io-index"
3668+checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
3669+dependencies = [
3670+ "winnow 1.0.3",
3671+]
3672+
3673+[[package]]
3674+name = "toml_write"
3675+version = "0.1.2"
3676+source = "registry+https://github.com/rust-lang/crates.io-index"
3677+checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
3678+
3679+[[package]]
3680+name = "tracing"
3681+version = "0.1.44"
3682+source = "registry+https://github.com/rust-lang/crates.io-index"
3683+checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
3684+dependencies = [
3685+ "log",
3686+ "pin-project-lite",
3687+ "tracing-attributes",
3688+ "tracing-core",
3689+]
3690+
3691+[[package]]
3692+name = "tracing-attributes"
3693+version = "0.1.31"
3694+source = "registry+https://github.com/rust-lang/crates.io-index"
3695+checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
3696+dependencies = [
3697+ "proc-macro2",
3698+ "quote",
3699+ "syn",
3700+]
3701+
3702+[[package]]
3703+name = "tracing-core"
3704+version = "0.1.36"
3705+source = "registry+https://github.com/rust-lang/crates.io-index"
3706+checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
3707+dependencies = [
3708+ "once_cell",
3709+ "valuable",
3710+]
3711+
3712+[[package]]
3713+name = "tracing-log"
3714+version = "0.2.0"
3715+source = "registry+https://github.com/rust-lang/crates.io-index"
3716+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
3717+dependencies = [
3718+ "log",
3719+ "once_cell",
3720+ "tracing-core",
3721+]
3722+
3723+[[package]]
3724+name = "tracing-subscriber"
3725+version = "0.3.23"
3726+source = "registry+https://github.com/rust-lang/crates.io-index"
3727+checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319"
3728+dependencies = [
3729+ "matchers",
3730+ "nu-ansi-term",
3731+ "once_cell",
3732+ "regex-automata",
3733+ "sharded-slab",
3734+ "smallvec",
3735+ "thread_local",
3736+ "tracing",
3737+ "tracing-core",
3738+ "tracing-log",
3739+]
3740+
3741+[[package]]
3742+name = "ttf-parser"
3743+version = "0.25.1"
3744+source = "registry+https://github.com/rust-lang/crates.io-index"
3745+checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31"
3746+dependencies = [
3747+ "core_maths",
3748+]
3749+
3750+[[package]]
3751+name = "unicode-bidi"
3752+version = "0.3.18"
3753+source = "registry+https://github.com/rust-lang/crates.io-index"
3754+checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
3755+
3756+[[package]]
3757+name = "unicode-ident"
3758+version = "1.0.24"
3759+source = "registry+https://github.com/rust-lang/crates.io-index"
3760+checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
3761+
3762+[[package]]
3763+name = "unicode-linebreak"
3764+version = "0.1.5"
3765+source = "registry+https://github.com/rust-lang/crates.io-index"
3766+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
3767+
3768+[[package]]
3769+name = "unicode-script"
3770+version = "0.5.8"
3771+source = "registry+https://github.com/rust-lang/crates.io-index"
3772+checksum = "383ad40bb927465ec0ce7720e033cb4ca06912855fc35db31b5755d0de75b1ee"
3773+
3774+[[package]]
3775+name = "unicode-segmentation"
3776+version = "1.13.2"
3777+source = "registry+https://github.com/rust-lang/crates.io-index"
3778+checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
3779+
3780+[[package]]
3781+name = "unicode-truncate"
3782+version = "1.1.0"
3783+source = "registry+https://github.com/rust-lang/crates.io-index"
3784+checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf"
3785+dependencies = [
3786+ "itertools 0.13.0",
3787+ "unicode-segmentation",
3788+ "unicode-width 0.1.14",
3789+]
3790+
3791+[[package]]
3792+name = "unicode-width"
3793+version = "0.1.14"
3794+source = "registry+https://github.com/rust-lang/crates.io-index"
3795+checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
3796+
3797+[[package]]
3798+name = "unicode-width"
3799+version = "0.2.2"
3800+source = "registry+https://github.com/rust-lang/crates.io-index"
3801+checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
3802+
3803+[[package]]
3804+name = "utf8parse"
3805+version = "0.2.2"
3806+source = "registry+https://github.com/rust-lang/crates.io-index"
3807+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
3808+
3809+[[package]]
3810+name = "valuable"
3811+version = "0.1.1"
3812+source = "registry+https://github.com/rust-lang/crates.io-index"
3813+checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
3814+
3815+[[package]]
3816+name = "version-compare"
3817+version = "0.2.1"
3818+source = "registry+https://github.com/rust-lang/crates.io-index"
3819+checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e"
3820+
3821+[[package]]
3822+name = "version_check"
3823+version = "0.9.5"
3824+source = "registry+https://github.com/rust-lang/crates.io-index"
3825+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
3826+
3827+[[package]]
3828+name = "walkdir"
3829+version = "2.5.0"
3830+source = "registry+https://github.com/rust-lang/crates.io-index"
3831+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
3832+dependencies = [
3833+ "same-file",
3834+ "winapi-util",
3835+]
3836+
3837+[[package]]
3838+name = "wasi"
3839+version = "0.11.1+wasi-snapshot-preview1"
3840+source = "registry+https://github.com/rust-lang/crates.io-index"
3841+checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
3842+
3843+[[package]]
3844+name = "wasip2"
3845+version = "1.0.3+wasi-0.2.9"
3846+source = "registry+https://github.com/rust-lang/crates.io-index"
3847+checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6"
3848+dependencies = [
3849+ "wit-bindgen",
3850+]
3851+
3852+[[package]]
3853+name = "wasm-bindgen"
3854+version = "0.2.122"
3855+source = "registry+https://github.com/rust-lang/crates.io-index"
3856+checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409"
3857+dependencies = [
3858+ "cfg-if",
3859+ "once_cell",
3860+ "rustversion",
3861+ "wasm-bindgen-macro",
3862+ "wasm-bindgen-shared",
3863+]
3864+
3865+[[package]]
3866+name = "wasm-bindgen-futures"
3867+version = "0.4.72"
3868+source = "registry+https://github.com/rust-lang/crates.io-index"
3869+checksum = "9473dbd2991ae90b6291c3c32c30c6187ac49aa32f9905d1cce280ec1e110b0f"
3870+dependencies = [
3871+ "js-sys",
3872+ "wasm-bindgen",
3873+]
3874+
3875+[[package]]
3876+name = "wasm-bindgen-macro"
3877+version = "0.2.122"
3878+source = "registry+https://github.com/rust-lang/crates.io-index"
3879+checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6"
3880+dependencies = [
3881+ "quote",
3882+ "wasm-bindgen-macro-support",
3883+]
3884+
3885+[[package]]
3886+name = "wasm-bindgen-macro-support"
3887+version = "0.2.122"
3888+source = "registry+https://github.com/rust-lang/crates.io-index"
3889+checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e"
3890+dependencies = [
3891+ "bumpalo",
3892+ "proc-macro2",
3893+ "quote",
3894+ "syn",
3895+ "wasm-bindgen-shared",
3896+]
3897+
3898+[[package]]
3899+name = "wasm-bindgen-shared"
3900+version = "0.2.122"
3901+source = "registry+https://github.com/rust-lang/crates.io-index"
3902+checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437"
3903+dependencies = [
3904+ "unicode-ident",
3905+]
3906+
3907+[[package]]
3908+name = "wasmtimer"
3909+version = "0.4.3"
3910+source = "registry+https://github.com/rust-lang/crates.io-index"
3911+checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b"
3912+dependencies = [
3913+ "futures",
3914+ "js-sys",
3915+ "parking_lot",
3916+ "pin-utils",
3917+ "slab",
3918+ "wasm-bindgen",
3919+]
3920+
3921+[[package]]
3922+name = "wayland-backend"
3923+version = "0.3.15"
3924+source = "registry+https://github.com/rust-lang/crates.io-index"
3925+checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d"
3926+dependencies = [
3927+ "cc",
3928+ "downcast-rs",
3929+ "rustix 1.1.4",
3930+ "scoped-tls",
3931+ "smallvec",
3932+ "wayland-sys",
3933+]
3934+
3935+[[package]]
3936+name = "wayland-client"
3937+version = "0.31.14"
3938+source = "registry+https://github.com/rust-lang/crates.io-index"
3939+checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144"
3940+dependencies = [
3941+ "bitflags 2.11.1",
3942+ "rustix 1.1.4",
3943+ "wayland-backend",
3944+ "wayland-scanner",
3945+]
3946+
3947+[[package]]
3948+name = "wayland-csd-frame"
3949+version = "0.3.0"
3950+source = "registry+https://github.com/rust-lang/crates.io-index"
3951+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
3952+dependencies = [
3953+ "bitflags 2.11.1",
3954+ "cursor-icon",
3955+ "wayland-backend",
3956+]
3957+
3958+[[package]]
3959+name = "wayland-cursor"
3960+version = "0.31.14"
3961+source = "registry+https://github.com/rust-lang/crates.io-index"
3962+checksum = "4a52d18780be9b1314328a3de5f930b73d2200112e3849ca6cb11822793fb34d"
3963+dependencies = [
3964+ "rustix 1.1.4",
3965+ "wayland-client",
3966+ "xcursor",
3967+]
3968+
3969+[[package]]
3970+name = "wayland-protocols"
3971+version = "0.32.12"
3972+source = "registry+https://github.com/rust-lang/crates.io-index"
3973+checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f"
3974+dependencies = [
3975+ "bitflags 2.11.1",
3976+ "wayland-backend",
3977+ "wayland-client",
3978+ "wayland-scanner",
3979+]
3980+
3981+[[package]]
3982+name = "wayland-protocols-experimental"
3983+version = "20250721.0.1"
3984+source = "registry+https://github.com/rust-lang/crates.io-index"
3985+checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1"
3986+dependencies = [
3987+ "bitflags 2.11.1",
3988+ "wayland-backend",
3989+ "wayland-client",
3990+ "wayland-protocols",
3991+ "wayland-scanner",
3992+]
3993+
3994+[[package]]
3995+name = "wayland-protocols-misc"
3996+version = "0.3.12"
3997+source = "registry+https://github.com/rust-lang/crates.io-index"
3998+checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8"
3999+dependencies = [
4000+ "bitflags 2.11.1",
4001+ "wayland-backend",
4002+ "wayland-client",
4003+ "wayland-protocols",
4004+ "wayland-scanner",
4005+]
4006+
4007+[[package]]
4008+name = "wayland-protocols-plasma"
4009+version = "0.3.12"
4010+source = "registry+https://github.com/rust-lang/crates.io-index"
4011+checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91"
4012+dependencies = [
4013+ "bitflags 2.11.1",
4014+ "wayland-backend",
4015+ "wayland-client",
4016+ "wayland-protocols",
4017+ "wayland-scanner",
4018+]
4019+
4020+[[package]]
4021+name = "wayland-protocols-wlr"
4022+version = "0.3.12"
4023+source = "registry+https://github.com/rust-lang/crates.io-index"
4024+checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234"
4025+dependencies = [
4026+ "bitflags 2.11.1",
4027+ "wayland-backend",
4028+ "wayland-client",
4029+ "wayland-protocols",
4030+ "wayland-scanner",
4031+]
4032+
4033+[[package]]
4034+name = "wayland-scanner"
4035+version = "0.31.10"
4036+source = "registry+https://github.com/rust-lang/crates.io-index"
4037+checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a"
4038+dependencies = [
4039+ "proc-macro2",
4040+ "quick-xml",
4041+ "quote",
4042+]
4043+
4044+[[package]]
4045+name = "wayland-sys"
4046+version = "0.31.11"
4047+source = "registry+https://github.com/rust-lang/crates.io-index"
4048+checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be"
4049+dependencies = [
4050+ "dlib",
4051+ "log",
4052+ "once_cell",
4053+ "pkg-config",
4054+]
4055+
4056+[[package]]
4057+name = "web-sys"
4058+version = "0.3.99"
4059+source = "registry+https://github.com/rust-lang/crates.io-index"
4060+checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436"
4061+dependencies = [
4062+ "js-sys",
4063+ "wasm-bindgen",
4064+]
4065+
4066+[[package]]
4067+name = "web-time"
4068+version = "1.1.0"
4069+source = "registry+https://github.com/rust-lang/crates.io-index"
4070+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
4071+dependencies = [
4072+ "js-sys",
4073+ "wasm-bindgen",
4074+]
4075+
4076+[[package]]
4077+name = "wgpu"
4078+version = "27.0.1"
4079+source = "registry+https://github.com/rust-lang/crates.io-index"
4080+checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77"
4081+dependencies = [
4082+ "arrayvec",
4083+ "bitflags 2.11.1",
4084+ "cfg-if",
4085+ "cfg_aliases",
4086+ "document-features",
4087+ "hashbrown 0.16.1",
4088+ "js-sys",
4089+ "log",
4090+ "naga",
4091+ "parking_lot",
4092+ "portable-atomic",
4093+ "profiling",
4094+ "raw-window-handle",
4095+ "smallvec",
4096+ "static_assertions",
4097+ "wasm-bindgen",
4098+ "wasm-bindgen-futures",
4099+ "web-sys",
4100+ "wgpu-core",
4101+ "wgpu-hal",
4102+ "wgpu-types",
4103+]
4104+
4105+[[package]]
4106+name = "wgpu-core"
4107+version = "27.0.3"
4108+source = "registry+https://github.com/rust-lang/crates.io-index"
4109+checksum = "27a75de515543b1897b26119f93731b385a19aea165a1ec5f0e3acecc229cae7"
4110+dependencies = [
4111+ "arrayvec",
4112+ "bit-set",
4113+ "bit-vec",
4114+ "bitflags 2.11.1",
4115+ "bytemuck",
4116+ "cfg_aliases",
4117+ "document-features",
4118+ "hashbrown 0.16.1",
4119+ "indexmap",
4120+ "log",
4121+ "naga",
4122+ "once_cell",
4123+ "parking_lot",
4124+ "portable-atomic",
4125+ "profiling",
4126+ "raw-window-handle",
4127+ "rustc-hash 1.1.0",
4128+ "smallvec",
4129+ "thiserror 2.0.18",
4130+ "wgpu-core-deps-apple",
4131+ "wgpu-core-deps-emscripten",
4132+ "wgpu-core-deps-windows-linux-android",
4133+ "wgpu-hal",
4134+ "wgpu-types",
4135+]
4136+
4137+[[package]]
4138+name = "wgpu-core-deps-apple"
4139+version = "27.0.0"
4140+source = "registry+https://github.com/rust-lang/crates.io-index"
4141+checksum = "0772ae958e9be0c729561d5e3fd9a19679bcdfb945b8b1a1969d9bfe8056d233"
4142+dependencies = [
4143+ "wgpu-hal",
4144+]
4145+
4146+[[package]]
4147+name = "wgpu-core-deps-emscripten"
4148+version = "27.0.0"
4149+source = "registry+https://github.com/rust-lang/crates.io-index"
4150+checksum = "b06ac3444a95b0813ecfd81ddb2774b66220b264b3e2031152a4a29fda4da6b5"
4151+dependencies = [
4152+ "wgpu-hal",
4153+]
4154+
4155+[[package]]
4156+name = "wgpu-core-deps-windows-linux-android"
4157+version = "27.0.0"
4158+source = "registry+https://github.com/rust-lang/crates.io-index"
4159+checksum = "71197027d61a71748e4120f05a9242b2ad142e3c01f8c1b47707945a879a03c3"
4160+dependencies = [
4161+ "wgpu-hal",
4162+]
4163+
4164+[[package]]
4165+name = "wgpu-hal"
4166+version = "27.0.4"
4167+source = "registry+https://github.com/rust-lang/crates.io-index"
4168+checksum = "5b21cb61c57ee198bc4aff71aeadff4cbb80b927beb912506af9c780d64313ce"
4169+dependencies = [
4170+ "android_system_properties",
4171+ "arrayvec",
4172+ "ash",
4173+ "bit-set",
4174+ "bitflags 2.11.1",
4175+ "block",
4176+ "bytemuck",
4177+ "cfg-if",
4178+ "cfg_aliases",
4179+ "core-graphics-types 0.2.0",
4180+ "glow",
4181+ "glutin_wgl_sys",
4182+ "gpu-alloc",
4183+ "gpu-allocator",
4184+ "gpu-descriptor",
4185+ "hashbrown 0.16.1",
4186+ "js-sys",
4187+ "khronos-egl",
4188+ "libc",
4189+ "libloading",
4190+ "log",
4191+ "metal",
4192+ "naga",
4193+ "ndk-sys",
4194+ "objc",
4195+ "once_cell",
4196+ "ordered-float",
4197+ "parking_lot",
4198+ "portable-atomic",
4199+ "portable-atomic-util",
4200+ "profiling",
4201+ "range-alloc",
4202+ "raw-window-handle",
4203+ "renderdoc-sys",
4204+ "smallvec",
4205+ "thiserror 2.0.18",
4206+ "wasm-bindgen",
4207+ "web-sys",
4208+ "wgpu-types",
4209+ "windows",
4210+ "windows-core",
4211+]
4212+
4213+[[package]]
4214+name = "wgpu-types"
4215+version = "27.0.1"
4216+source = "registry+https://github.com/rust-lang/crates.io-index"
4217+checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb"
4218+dependencies = [
4219+ "bitflags 2.11.1",
4220+ "bytemuck",
4221+ "js-sys",
4222+ "log",
4223+ "thiserror 2.0.18",
4224+ "web-sys",
4225+]
4226+
4227+[[package]]
4228+name = "winapi"
4229+version = "0.3.9"
4230+source = "registry+https://github.com/rust-lang/crates.io-index"
4231+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
4232+dependencies = [
4233+ "winapi-i686-pc-windows-gnu",
4234+ "winapi-x86_64-pc-windows-gnu",
4235+]
4236+
4237+[[package]]
4238+name = "winapi-i686-pc-windows-gnu"
4239+version = "0.4.0"
4240+source = "registry+https://github.com/rust-lang/crates.io-index"
4241+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
4242+
4243+[[package]]
4244+name = "winapi-util"
4245+version = "0.1.11"
4246+source = "registry+https://github.com/rust-lang/crates.io-index"
4247+checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
4248+dependencies = [
4249+ "windows-sys 0.61.2",
4250+]
4251+
4252+[[package]]
4253+name = "winapi-x86_64-pc-windows-gnu"
4254+version = "0.4.0"
4255+source = "registry+https://github.com/rust-lang/crates.io-index"
4256+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
4257+
4258+[[package]]
4259+name = "window_clipboard"
4260+version = "0.5.1"
4261+source = "registry+https://github.com/rust-lang/crates.io-index"
4262+checksum = "d5654226305eaf2dde8853fb482861d28e5dcecbbd40cb88e8393d94bb80d733"
4263+dependencies = [
4264+ "clipboard-win",
4265+ "clipboard_macos",
4266+ "clipboard_wayland",
4267+ "raw-window-handle",
4268+ "thiserror 2.0.18",
4269+]
4270+
4271+[[package]]
4272+name = "windows"
4273+version = "0.58.0"
4274+source = "registry+https://github.com/rust-lang/crates.io-index"
4275+checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
4276+dependencies = [
4277+ "windows-core",
4278+ "windows-targets 0.52.6",
4279+]
4280+
4281+[[package]]
4282+name = "windows-core"
4283+version = "0.58.0"
4284+source = "registry+https://github.com/rust-lang/crates.io-index"
4285+checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
4286+dependencies = [
4287+ "windows-implement",
4288+ "windows-interface",
4289+ "windows-result",
4290+ "windows-strings",
4291+ "windows-targets 0.52.6",
4292+]
4293+
4294+[[package]]
4295+name = "windows-implement"
4296+version = "0.58.0"
4297+source = "registry+https://github.com/rust-lang/crates.io-index"
4298+checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
4299+dependencies = [
4300+ "proc-macro2",
4301+ "quote",
4302+ "syn",
4303+]
4304+
4305+[[package]]
4306+name = "windows-interface"
4307+version = "0.58.0"
4308+source = "registry+https://github.com/rust-lang/crates.io-index"
4309+checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
4310+dependencies = [
4311+ "proc-macro2",
4312+ "quote",
4313+ "syn",
4314+]
4315+
4316+[[package]]
4317+name = "windows-link"
4318+version = "0.2.1"
4319+source = "registry+https://github.com/rust-lang/crates.io-index"
4320+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
4321+
4322+[[package]]
4323+name = "windows-result"
4324+version = "0.2.0"
4325+source = "registry+https://github.com/rust-lang/crates.io-index"
4326+checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
4327+dependencies = [
4328+ "windows-targets 0.52.6",
4329+]
4330+
4331+[[package]]
4332+name = "windows-strings"
4333+version = "0.1.0"
4334+source = "registry+https://github.com/rust-lang/crates.io-index"
4335+checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
4336+dependencies = [
4337+ "windows-result",
4338+ "windows-targets 0.52.6",
4339+]
4340+
4341+[[package]]
4342+name = "windows-sys"
4343+version = "0.48.0"
4344+source = "registry+https://github.com/rust-lang/crates.io-index"
4345+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
4346+dependencies = [
4347+ "windows-targets 0.48.5",
4348+]
4349+
4350+[[package]]
4351+name = "windows-sys"
4352+version = "0.52.0"
4353+source = "registry+https://github.com/rust-lang/crates.io-index"
4354+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
4355+dependencies = [
4356+ "windows-targets 0.52.6",
4357+]
4358+
4359+[[package]]
4360+name = "windows-sys"
4361+version = "0.59.0"
4362+source = "registry+https://github.com/rust-lang/crates.io-index"
4363+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
4364+dependencies = [
4365+ "windows-targets 0.52.6",
4366+]
4367+
4368+[[package]]
4369+name = "windows-sys"
4370+version = "0.61.2"
4371+source = "registry+https://github.com/rust-lang/crates.io-index"
4372+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
4373+dependencies = [
4374+ "windows-link",
4375+]
4376+
4377+[[package]]
4378+name = "windows-targets"
4379+version = "0.48.5"
4380+source = "registry+https://github.com/rust-lang/crates.io-index"
4381+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
4382+dependencies = [
4383+ "windows_aarch64_gnullvm 0.48.5",
4384+ "windows_aarch64_msvc 0.48.5",
4385+ "windows_i686_gnu 0.48.5",
4386+ "windows_i686_msvc 0.48.5",
4387+ "windows_x86_64_gnu 0.48.5",
4388+ "windows_x86_64_gnullvm 0.48.5",
4389+ "windows_x86_64_msvc 0.48.5",
4390+]
4391+
4392+[[package]]
4393+name = "windows-targets"
4394+version = "0.52.6"
4395+source = "registry+https://github.com/rust-lang/crates.io-index"
4396+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
4397+dependencies = [
4398+ "windows_aarch64_gnullvm 0.52.6",
4399+ "windows_aarch64_msvc 0.52.6",
4400+ "windows_i686_gnu 0.52.6",
4401+ "windows_i686_gnullvm",
4402+ "windows_i686_msvc 0.52.6",
4403+ "windows_x86_64_gnu 0.52.6",
4404+ "windows_x86_64_gnullvm 0.52.6",
4405+ "windows_x86_64_msvc 0.52.6",
4406+]
4407+
4408+[[package]]
4409+name = "windows_aarch64_gnullvm"
4410+version = "0.48.5"
4411+source = "registry+https://github.com/rust-lang/crates.io-index"
4412+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
4413+
4414+[[package]]
4415+name = "windows_aarch64_gnullvm"
4416+version = "0.52.6"
4417+source = "registry+https://github.com/rust-lang/crates.io-index"
4418+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
4419+
4420+[[package]]
4421+name = "windows_aarch64_msvc"
4422+version = "0.48.5"
4423+source = "registry+https://github.com/rust-lang/crates.io-index"
4424+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
4425+
4426+[[package]]
4427+name = "windows_aarch64_msvc"
4428+version = "0.52.6"
4429+source = "registry+https://github.com/rust-lang/crates.io-index"
4430+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
4431+
4432+[[package]]
4433+name = "windows_i686_gnu"
4434+version = "0.48.5"
4435+source = "registry+https://github.com/rust-lang/crates.io-index"
4436+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
4437+
4438+[[package]]
4439+name = "windows_i686_gnu"
4440+version = "0.52.6"
4441+source = "registry+https://github.com/rust-lang/crates.io-index"
4442+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
4443+
4444+[[package]]
4445+name = "windows_i686_gnullvm"
4446+version = "0.52.6"
4447+source = "registry+https://github.com/rust-lang/crates.io-index"
4448+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
4449+
4450+[[package]]
4451+name = "windows_i686_msvc"
4452+version = "0.48.5"
4453+source = "registry+https://github.com/rust-lang/crates.io-index"
4454+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
4455+
4456+[[package]]
4457+name = "windows_i686_msvc"
4458+version = "0.52.6"
4459+source = "registry+https://github.com/rust-lang/crates.io-index"
4460+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
4461+
4462+[[package]]
4463+name = "windows_x86_64_gnu"
4464+version = "0.48.5"
4465+source = "registry+https://github.com/rust-lang/crates.io-index"
4466+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
4467+
4468+[[package]]
4469+name = "windows_x86_64_gnu"
4470+version = "0.52.6"
4471+source = "registry+https://github.com/rust-lang/crates.io-index"
4472+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
4473+
4474+[[package]]
4475+name = "windows_x86_64_gnullvm"
4476+version = "0.48.5"
4477+source = "registry+https://github.com/rust-lang/crates.io-index"
4478+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
4479+
4480+[[package]]
4481+name = "windows_x86_64_gnullvm"
4482+version = "0.52.6"
4483+source = "registry+https://github.com/rust-lang/crates.io-index"
4484+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
4485+
4486+[[package]]
4487+name = "windows_x86_64_msvc"
4488+version = "0.48.5"
4489+source = "registry+https://github.com/rust-lang/crates.io-index"
4490+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
4491+
4492+[[package]]
4493+name = "windows_x86_64_msvc"
4494+version = "0.52.6"
4495+source = "registry+https://github.com/rust-lang/crates.io-index"
4496+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
4497+
4498+[[package]]
4499+name = "winit"
4500+version = "0.30.13"
4501+source = "registry+https://github.com/rust-lang/crates.io-index"
4502+checksum = "a6755fa58a9f8350bd1e472d4c3fcc25f824ec358933bba33306d0b63df5978d"
4503+dependencies = [
4504+ "ahash",
4505+ "android-activity",
4506+ "atomic-waker",
4507+ "bitflags 2.11.1",
4508+ "block2",
4509+ "calloop 0.13.0",
4510+ "cfg_aliases",
4511+ "concurrent-queue",
4512+ "core-foundation 0.9.4",
4513+ "core-graphics",
4514+ "cursor-icon",
4515+ "dpi",
4516+ "js-sys",
4517+ "libc",
4518+ "memmap2",
4519+ "ndk",
4520+ "objc2 0.5.2",
4521+ "objc2-app-kit",
4522+ "objc2-foundation 0.2.2",
4523+ "objc2-ui-kit",
4524+ "orbclient",
4525+ "pin-project",
4526+ "raw-window-handle",
4527+ "redox_syscall 0.4.1",
4528+ "rustix 0.38.44",
4529+ "sctk-adwaita",
4530+ "smithay-client-toolkit 0.19.2",
4531+ "smol_str",
4532+ "tracing",
4533+ "unicode-segmentation",
4534+ "wasm-bindgen",
4535+ "wasm-bindgen-futures",
4536+ "wayland-backend",
4537+ "wayland-client",
4538+ "wayland-protocols",
4539+ "wayland-protocols-plasma",
4540+ "web-sys",
4541+ "web-time",
4542+ "windows-sys 0.52.0",
4543+ "xkbcommon-dl",
4544+]
4545+
4546+[[package]]
4547+name = "winnow"
4548+version = "0.7.15"
4549+source = "registry+https://github.com/rust-lang/crates.io-index"
4550+checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
4551+dependencies = [
4552+ "memchr",
4553+]
4554+
4555+[[package]]
4556+name = "winnow"
4557+version = "1.0.3"
4558+source = "registry+https://github.com/rust-lang/crates.io-index"
4559+checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1"
4560+dependencies = [
4561+ "memchr",
4562+]
4563+
4564+[[package]]
4565+name = "wit-bindgen"
4566+version = "0.57.1"
4567+source = "registry+https://github.com/rust-lang/crates.io-index"
4568+checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
4569+
4570+[[package]]
4571+name = "xcursor"
4572+version = "0.3.10"
4573+source = "registry+https://github.com/rust-lang/crates.io-index"
4574+checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b"
4575+
4576+[[package]]
4577+name = "xkbcommon-dl"
4578+version = "0.4.2"
4579+source = "registry+https://github.com/rust-lang/crates.io-index"
4580+checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
4581+dependencies = [
4582+ "bitflags 2.11.1",
4583+ "dlib",
4584+ "log",
4585+ "once_cell",
4586+ "xkeysym",
4587+]
4588+
4589+[[package]]
4590+name = "xkeysym"
4591+version = "0.2.1"
4592+source = "registry+https://github.com/rust-lang/crates.io-index"
4593+checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56"
4594+
4595+[[package]]
4596+name = "xml-rs"
4597+version = "0.8.28"
4598+source = "registry+https://github.com/rust-lang/crates.io-index"
4599+checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f"
4600+
4601+[[package]]
4602+name = "yansi-term"
4603+version = "0.1.2"
4604+source = "registry+https://github.com/rust-lang/crates.io-index"
4605+checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1"
4606+dependencies = [
4607+ "winapi",
4608+]
4609+
4610+[[package]]
4611+name = "yazi"
4612+version = "0.2.1"
4613+source = "registry+https://github.com/rust-lang/crates.io-index"
4614+checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5"
4615+
4616+[[package]]
4617+name = "zeno"
4618+version = "0.3.3"
4619+source = "registry+https://github.com/rust-lang/crates.io-index"
4620+checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524"
4621+
4622+[[package]]
4623+name = "zerocopy"
4624+version = "0.8.48"
4625+source = "registry+https://github.com/rust-lang/crates.io-index"
4626+checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9"
4627+dependencies = [
4628+ "zerocopy-derive",
4629+]
4630+
4631+[[package]]
4632+name = "zerocopy-derive"
4633+version = "0.8.48"
4634+source = "registry+https://github.com/rust-lang/crates.io-index"
4635+checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4"
4636+dependencies = [
4637+ "proc-macro2",
4638+ "quote",
4639+ "syn",
4640+]
4641+
4642+[[package]]
4643+name = "zmij"
4644+version = "1.0.21"
4645+source = "registry+https://github.com/rust-lang/crates.io-index"
4646+checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
Added file: Cargo.toml+95 additions
@@ -0,0 +1,95 @@
1+[workspace]
2+resolver = "2"
3+members = [
4+ "crates/headroom-dsp",
5+ "crates/headroom-ipc",
6+ "crates/headroom-client",
7+ "crates/headroom-core",
8+ "crates/headroom-cli",
9+ "crates/headroom-gui",
10+ "crates/pipewire-filter",
11+]
12+
13+[workspace.package]
14+version = "0.1.0"
15+edition = "2021"
16+license = "EUPL-1.2"
17+homepage = "https://github.com/manic-systems/headroom"
18+repository = "https://github.com/manic-systems/headroom"
19+authors = ["Headroom contributors"]
20+
21+[workspace.dependencies]
22+# internal crates
23+headroom-dsp = { path = "crates/headroom-dsp", version = "0.1.0" }
24+headroom-ipc = { path = "crates/headroom-ipc", version = "0.1.0" }
25+headroom-client = { path = "crates/headroom-client", version = "0.1.0" }
26+headroom-core = { path = "crates/headroom-core", version = "0.1.0" }
27+pipewire-filter = { path = "crates/pipewire-filter", version = "0.1.0" }
28+
29+# serde / json / toml
30+serde = { version = "1.0", features = ["derive"] }
31+serde_json = "1.0"
32+toml = "0.8"
33+
34+# errors / logging
35+thiserror = "2.0"
36+tracing = "0.1"
37+tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
38+
39+# cli
40+clap = { version = "4.5", features = ["derive"] }
41+
42+# held at 0.28 — 0.29 has block/style api churn needing a tui.rs migration. not a toolchain constraint
43+ratatui = "=0.28.1"
44+crossterm = "=0.28.1"
45+
46+# concurrency / control plane
47+crossbeam-channel = "0.5"
48+parking_lot = "0.12"
49+signal-hook = "0.3"
50+nix = { version = "0.27", features = ["signal"] }
51+
52+# realtime audio
53+rtrb = "0.3"
54+basedrop = "0.1"
55+assert_no_alloc = "1.1"
56+
57+# dsp
58+ebur128 = "0.1"
59+fundsp = "0.20"
60+
61+# v0_3_44 exposes target.object key + modern apis
62+pipewire = { version = "0.8", features = ["v0_3_44"] }
63+pipewire-sys = "0.8"
64+libspa = "0.8"
65+libspa-sys = "0.8"
66+
67+# safe byte<->pod casts for audio buffers
68+bytemuck = "1.18"
69+
70+# profile hot-reload
71+notify = "6.1"
72+notify-debouncer-mini = "0.4"
73+
74+# benchmarking — dev-dep only
75+criterion = { version = "0.5", default-features = false, features = ["cargo_bench_support"] }
76+
77+# journald logging, optional
78+tracing-journald = "0.3"
79+
80+[profile.release]
81+opt-level = 3
82+lto = "thin"
83+codegen-units = 1
84+debug = "line-tables-only"
85+overflow-checks = false
86+panic = "abort"
87+
88+[profile.dev]
89+opt-level = 1 # audio code unusable at -O0
90+debug = true
91+overflow-checks = true
92+
93+[profile.bench]
94+inherits = "release"
95+debug = "full"
Added file: LICENSE+190 additions
@@ -0,0 +1,190 @@
1+EUROPEAN UNION PUBLIC LICENCE v. 1.2
2+EUPL © the European Union 2007, 2016
3+
4+This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined below) which is provided under the
5+terms of this Licence. Any use of the Work, other than as authorised under this Licence is prohibited (to the extent such
6+use is covered by a right of the copyright holder of the Work).
7+The Work is provided under the terms of this Licence when the Licensor (as defined below) has placed the following
8+notice immediately following the copyright notice for the Work:
9+ Licensed under the EUPL
10+or has expressed by any other means his willingness to license under the EUPL.
11+
12+1.Definitions
13+In this Licence, the following terms have the following meaning:
14+— ‘The Licence’:this Licence.
15+— ‘The Original Work’:the work or software distributed or communicated by the Licensor under this Licence, available
16+as Source Code and also as Executable Code as the case may be.
17+— ‘Derivative Works’:the works or software that could be created by the Licensee, based upon the Original Work or
18+modifications thereof. This Licence does not define the extent of modification or dependence on the Original Work
19+required in order to classify a work as a Derivative Work; this extent is determined by copyright law applicable in
20+the country mentioned in Article 15.
21+— ‘The Work’:the Original Work or its Derivative Works.
22+— ‘The Source Code’:the human-readable form of the Work which is the most convenient for people to study and
23+modify.
24+— ‘The Executable Code’:any code which has generally been compiled and which is meant to be interpreted by
25+a computer as a program.
26+— ‘The Licensor’:the natural or legal person that distributes or communicates the Work under the Licence.
27+— ‘Contributor(s)’:any natural or legal person who modifies the Work under the Licence, or otherwise contributes to
28+the creation of a Derivative Work.
29+— ‘The Licensee’ or ‘You’:any natural or legal person who makes any usage of the Work under the terms of the
30+Licence.
31+— ‘Distribution’ or ‘Communication’:any act of selling, giving, lending, renting, distributing, communicating,
32+transmitting, or otherwise making available, online or offline, copies of the Work or providing access to its essential
33+functionalities at the disposal of any other natural or legal person.
34+
35+2.Scope of the rights granted by the Licence
36+The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, sublicensable licence to do the following, for
37+the duration of copyright vested in the Original Work:
38+— use the Work in any circumstance and for all usage,
39+— reproduce the Work,
40+— modify the Work, and make Derivative Works based upon the Work,
41+— communicate to the public, including the right to make available or display the Work or copies thereof to the public
42+and perform publicly, as the case may be, the Work,
43+— distribute the Work or copies thereof,
44+— lend and rent the Work or copies thereof,
45+— sublicense rights in the Work or copies thereof.
46+Those rights can be exercised on any media, supports and formats, whether now known or later invented, as far as the
47+applicable law permits so.
48+In the countries where moral rights apply, the Licensor waives his right to exercise his moral right to the extent allowed
49+by law in order to make effective the licence of the economic rights here above listed.
50+The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to any patents held by the Licensor, to the
51+extent necessary to make use of the rights granted on the Work under this Licence.
52+
53+3.Communication of the Source Code
54+The Licensor may provide the Work either in its Source Code form, or as Executable Code. If the Work is provided as
55+Executable Code, the Licensor provides in addition a machine-readable copy of the Source Code of the Work along with
56+each copy of the Work that the Licensor distributes or indicates, in a notice following the copyright notice attached to
57+the Work, a repository where the Source Code is easily and freely accessible for as long as the Licensor continues to
58+distribute or communicate the Work.
59+
60+4.Limitations on copyright
61+Nothing in this Licence is intended to deprive the Licensee of the benefits from any exception or limitation to the
62+exclusive rights of the rights owners in the Work, of the exhaustion of those rights or of other applicable limitations
63+thereto.
64+
65+5.Obligations of the Licensee
66+The grant of the rights mentioned above is subject to some restrictions and obligations imposed on the Licensee. Those
67+obligations are the following:
68+
69+Attribution right: The Licensee shall keep intact all copyright, patent or trademarks notices and all notices that refer to
70+the Licence and to the disclaimer of warranties. The Licensee must include a copy of such notices and a copy of the
71+Licence with every copy of the Work he/she distributes or communicates. The Licensee must cause any Derivative Work
72+to carry prominent notices stating that the Work has been modified and the date of modification.
73+
74+Copyleft clause: If the Licensee distributes or communicates copies of the Original Works or Derivative Works, this
75+Distribution or Communication will be done under the terms of this Licence or of a later version of this Licence unless
76+the Original Work is expressly distributed only under this version of the Licence — for example by communicating
77+‘EUPL v. 1.2 only’. The Licensee (becoming Licensor) cannot offer or impose any additional terms or conditions on the
78+Work or Derivative Work that alter or restrict the terms of the Licence.
79+
80+Compatibility clause: If the Licensee Distributes or Communicates Derivative Works or copies thereof based upon both
81+the Work and another work licensed under a Compatible Licence, this Distribution or Communication can be done
82+under the terms of this Compatible Licence. For the sake of this clause, ‘Compatible Licence’ refers to the licences listed
83+in the appendix attached to this Licence. Should the Licensee's obligations under the Compatible Licence conflict with
84+his/her obligations under this Licence, the obligations of the Compatible Licence shall prevail.
85+
86+Provision of Source Code: When distributing or communicating copies of the Work, the Licensee will provide
87+a machine-readable copy of the Source Code or indicate a repository where this Source will be easily and freely available
88+for as long as the Licensee continues to distribute or communicate the Work.
89+Legal Protection: This Licence does not grant permission to use the trade names, trademarks, service marks, or names
90+of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and
91+reproducing the content of the copyright notice.
92+
93+6.Chain of Authorship
94+The original Licensor warrants that the copyright in the Original Work granted hereunder is owned by him/her or
95+licensed to him/her and that he/she has the power and authority to grant the Licence.
96+Each Contributor warrants that the copyright in the modifications he/she brings to the Work are owned by him/her or
97+licensed to him/her and that he/she has the power and authority to grant the Licence.
98+Each time You accept the Licence, the original Licensor and subsequent Contributors grant You a licence to their contributions
99+to the Work, under the terms of this Licence.
100+
101+7.Disclaimer of Warranty
102+The Work is a work in progress, which is continuously improved by numerous Contributors. It is not a finished work
103+and may therefore contain defects or ‘bugs’ inherent to this type of development.
104+For the above reason, the Work is provided under the Licence on an ‘as is’ basis and without warranties of any kind
105+concerning the Work, including without limitation merchantability, fitness for a particular purpose, absence of defects or
106+errors, accuracy, non-infringement of intellectual property rights other than copyright as stated in Article 6 of this
107+Licence.
108+This disclaimer of warranty is an essential part of the Licence and a condition for the grant of any rights to the Work.
109+
110+8.Disclaimer of Liability
111+Except in the cases of wilful misconduct or damages directly caused to natural persons, the Licensor will in no event be
112+liable for any direct or indirect, material or moral, damages of any kind, arising out of the Licence or of the use of the
113+Work, including without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, loss
114+of data or any commercial damage, even if the Licensor has been advised of the possibility of such damage. However,
115+the Licensor will be liable under statutory product liability laws as far such laws apply to the Work.
116+
117+9.Additional agreements
118+While distributing the Work, You may choose to conclude an additional agreement, defining obligations or services
119+consistent with this Licence. However, if accepting obligations, You may act only on your own behalf and on your sole
120+responsibility, not on behalf of the original Licensor or any other Contributor, and only if You agree to indemnify,
121+defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against such Contributor by
122+the fact You have accepted any warranty or additional liability.
123+
124+10.Acceptance of the Licence
125+The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ placed under the bottom of a window
126+displaying the text of this Licence or by affirming consent in any other similar way, in accordance with the rules of
127+applicable law. Clicking on that icon indicates your clear and irrevocable acceptance of this Licence and all of its terms
128+and conditions.
129+Similarly, you irrevocably accept this Licence and all of its terms and conditions by exercising any rights granted to You
130+by Article 2 of this Licence, such as the use of the Work, the creation by You of a Derivative Work or the Distribution
131+or Communication by You of the Work or copies thereof.
132+
133+11.Information to the public
134+In case of any Distribution or Communication of the Work by means of electronic communication by You (for example,
135+by offering to download the Work from a remote location) the distribution channel or media (for example, a website)
136+must at least provide to the public the information requested by the applicable law regarding the Licensor, the Licence
137+and the way it may be accessible, concluded, stored and reproduced by the Licensee.
138+
139+12.Termination of the Licence
140+The Licence and the rights granted hereunder will terminate automatically upon any breach by the Licensee of the terms
141+of the Licence.
142+Such a termination will not terminate the licences of any person who has received the Work from the Licensee under
143+the Licence, provided such persons remain in full compliance with the Licence.
144+
145+13.Miscellaneous
146+Without prejudice of Article 9 above, the Licence represents the complete agreement between the Parties as to the
147+Work.
148+If any provision of the Licence is invalid or unenforceable under applicable law, this will not affect the validity or
149+enforceability of the Licence as a whole. Such provision will be construed or reformed so as necessary to make it valid
150+and enforceable.
151+The European Commission may publish other linguistic versions or new versions of this Licence or updated versions of
152+the Appendix, so far this is required and reasonable, without reducing the scope of the rights granted by the Licence.
153+New versions of the Licence will be published with a unique version number.
154+All linguistic versions of this Licence, approved by the European Commission, have identical value. Parties can take
155+advantage of the linguistic version of their choice.
156+
157+14.Jurisdiction
158+Without prejudice to specific agreement between parties,
159+— any litigation resulting from the interpretation of this License, arising between the European Union institutions,
160+bodies, offices or agencies, as a Licensor, and any Licensee, will be subject to the jurisdiction of the Court of Justice
161+of the European Union, as laid down in article 272 of the Treaty on the Functioning of the European Union,
162+— any litigation arising between other parties and resulting from the interpretation of this License, will be subject to
163+the exclusive jurisdiction of the competent court where the Licensor resides or conducts its primary business.
164+
165+15.Applicable Law
166+Without prejudice to specific agreement between parties,
167+— this Licence shall be governed by the law of the European Union Member State where the Licensor has his seat,
168+resides or has his registered office,
169+— this licence shall be governed by Belgian law if the Licensor has no seat, residence or registered office inside
170+a European Union Member State.
171+
172+
173+ Appendix
174+
175+‘Compatible Licences’ according to Article 5 EUPL are:
176+— GNU General Public License (GPL) v. 2, v. 3
177+— GNU Affero General Public License (AGPL) v. 3
178+— Open Software License (OSL) v. 2.1, v. 3.0
179+— Eclipse Public License (EPL) v. 1.0
180+— CeCILL v. 2.0, v. 2.1
181+— Mozilla Public Licence (MPL) v. 2
182+— GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3
183+— Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for works other than software
184+— European Union Public Licence (EUPL) v. 1.1, v. 1.2
185+— Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong Reciprocity (LiLiQ-R+).
186+
187+The European Commission may update this Appendix to later versions of the above licences without producing
188+a new version of the EUPL, as long as they provide the rights granted in Article 2 of this Licence and protect the
189+covered Source Code from exclusive appropriation.
190+All other changes or additions to this Appendix require the production of a new EUPL version.
Added file: flake.lock+27 additions
@@ -0,0 +1,27 @@
1+{
2+ "nodes": {
3+ "nixpkgs": {
4+ "locked": {
5+ "lastModified": 1778869304,
6+ "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
7+ "owner": "NixOS",
8+ "repo": "nixpkgs",
9+ "rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
10+ "type": "github"
11+ },
12+ "original": {
13+ "owner": "NixOS",
14+ "ref": "nixos-unstable",
15+ "repo": "nixpkgs",
16+ "type": "github"
17+ }
18+ },
19+ "root": {
20+ "inputs": {
21+ "nixpkgs": "nixpkgs"
22+ }
23+ }
24+ },
25+ "root": "root",
26+ "version": 7
27+}
Added file: flake.nix+229 additions
@@ -0,0 +1,229 @@
1+{
2+ description = "automatic loudness and per-app volume control (pipewire)";
3+
4+ inputs = {
5+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6+ };
7+
8+ outputs =
9+ {
10+ self,
11+ nixpkgs,
12+ }:
13+ let
14+ systems = [
15+ "x86_64-linux"
16+ "aarch64-linux"
17+ ];
18+ forAllSystems = nixpkgs.lib.genAttrs systems;
19+
20+ pkgsFor =
21+ system:
22+ import nixpkgs {
23+ inherit system;
24+ };
25+
26+ perSystem =
27+ system:
28+ let
29+ pkgs = pkgsFor system;
30+
31+ # native libs the audio crates link against
32+ nativeAudioBuildInputs = with pkgs; [
33+ pipewire
34+ pipewire.dev
35+ ];
36+
37+ nativeBuildTools = with pkgs; [
38+ pkg-config
39+ clang
40+ ];
41+
42+ # system libs iced (wgpu/winit/cosmic-text) compiles + dlopens at runtime.
43+ # wayland-only (x11 feature off); re-add libx11/libxcursor/libxi/libxrandr/libxcb if x11 re-enabled
44+ guiLibs = with pkgs; [
45+ vulkan-loader
46+ libxkbcommon
47+ wayland
48+ libGL
49+ fontconfig
50+ ];
51+
52+ commonEnv = {
53+ LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
54+ PKG_CONFIG_PATH = "${pkgs.pipewire.dev}/lib/pkgconfig";
55+ };
56+ in
57+ {
58+ # nix develop — dev environment
59+ devShell = pkgs.mkShell (
60+ {
61+ name = "headroom-dev";
62+
63+ nativeBuildInputs = nativeBuildTools ++ [
64+ pkgs.cargo
65+ pkgs.clippy
66+ pkgs.rust-analyzer
67+ pkgs.rustc
68+ pkgs.rustfmt
69+ ];
70+
71+ buildInputs =
72+ nativeAudioBuildInputs
73+ ++ guiLibs
74+ ++ (with pkgs; [
75+ socat # poke the ipc socket
76+ jq # pretty-print json
77+ pipewire # pw-cli, pw-cat, etc.
78+ wireplumber
79+ ]);
80+
81+ shellHook = ''
82+ echo "headroom dev shell — rustc $(rustc --version | cut -d' ' -f2)"
83+ echo " cargo build / cargo test for iteration."
84+ echo " nix build .#headroom for the packaged binary."
85+ echo " cargo run -p headroom-gui for the GUI (needs a display)."
86+ export RUST_BACKTRACE=1
87+ export RUST_LOG=headroom=debug,info
88+ # iced/wgpu dlopen vulkan/wayland/xkbcommon at runtime
89+ export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath guiLibs}''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
90+ '';
91+ }
92+ // commonEnv
93+ );
94+
95+ # nix build — packaged daemon + cli
96+ headroom = pkgs.rustPlatform.buildRustPackage (
97+ {
98+ pname = "headroom";
99+ # workspace version (per-crate manifests use version.workspace = true)
100+ version =
101+ (builtins.fromTOML (builtins.readFile ./Cargo.toml)).workspace.package.version
102+ + "-"
103+ + (toString self.lastModifiedDate);
104+
105+ src = ./.;
106+
107+ cargoLock = {
108+ lockFile = ./Cargo.lock;
109+ # allowBuiltinFetchGit = true;
110+ };
111+
112+ nativeBuildInputs = nativeBuildTools;
113+ buildInputs = nativeAudioBuildInputs;
114+
115+ # one binary: `headroom` (cli + daemon)
116+ cargoBuildFlags = [
117+ "-p"
118+ "headroom-cli"
119+ ];
120+ doCheck = true;
121+ # exclude headroom-gui from the test sweep — pulls iced's gpu stack, not part of the daemon
122+ cargoTestFlags = [
123+ "--workspace"
124+ "--exclude"
125+ "headroom-gui"
126+ ];
127+
128+ # systemd user unit (@bindir@ templated to this derivation's bin, not PATH)
129+ # + canonical profiles under share/headroom/profiles (daemon finds via $XDG_DATA_DIRS)
130+ postInstall = ''
131+ install -Dm644 contrib/systemd/headroom.service \
132+ "$out/lib/systemd/user/headroom.service"
133+ substituteInPlace "$out/lib/systemd/user/headroom.service" \
134+ --replace-fail '@bindir@' "$out/bin"
135+
136+ mkdir -p "$out/share/headroom/profiles"
137+ cp -r profiles/. "$out/share/headroom/profiles/"
138+ '';
139+
140+ meta = with pkgs.lib; {
141+ description = "automatic loudness and per-app volume control (pipewire)";
142+ license = licenses.gpl3Plus;
143+ platforms = platforms.linux;
144+ mainProgram = "headroom";
145+ };
146+ }
147+ // commonEnv
148+ );
149+
150+ # `nix build .#headroom-gui` — optional iced GUI monitor.
151+ # separate package so the default build stays graphics-free. iced/wgpu
152+ # dlopen vulkan/libGL/wayland/xkbcommon at runtime → wrap with LD_LIBRARY_PATH.
153+ # also ships the .desktop entry.
154+ headroom-gui = pkgs.rustPlatform.buildRustPackage (
155+ {
156+ pname = "headroom-gui";
157+ version =
158+ (builtins.fromTOML (builtins.readFile ./Cargo.toml)).workspace.package.version
159+ + "-"
160+ + (toString self.lastModifiedDate);
161+
162+ src = ./.;
163+
164+ cargoLock = {
165+ lockFile = ./Cargo.lock;
166+ };
167+
168+ # makeWrapper for the LD_LIBRARY_PATH wrap. gui doesn't link pipewire
169+ # (talks to the daemon over the socket via headroom-client) → no pipewire/clang
170+ nativeBuildInputs = [
171+ pkgs.pkg-config
172+ pkgs.makeWrapper
173+ ];
174+ buildInputs = guiLibs;
175+
176+ cargoBuildFlags = [
177+ "-p"
178+ "headroom-gui"
179+ ];
180+ # gui tests drive iced view/update; no display in the sandbox.
181+ # run them via `cargo test -p headroom-gui` in the dev shell instead
182+ doCheck = false;
183+
184+ postInstall = ''
185+ install -Dm644 contrib/desktop/headroom-gui.desktop \
186+ "$out/share/applications/headroom-gui.desktop"
187+ substituteInPlace "$out/share/applications/headroom-gui.desktop" \
188+ --replace-fail '@bindir@' "$out/bin"
189+ '';
190+
191+ postFixup = ''
192+ wrapProgram "$out/bin/headroom-gui" \
193+ --prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath guiLibs}"
194+ '';
195+
196+ meta = with pkgs.lib; {
197+ description = "automatic loudness and per-app volume control (pipewire)";
198+ license = licenses.eupl12;
199+ platforms = platforms.linux;
200+ mainProgram = "headroom-gui";
201+ };
202+ }
203+ // commonEnv
204+ );
205+ };
206+ in
207+ {
208+ devShells = forAllSystems (system: {
209+ default = (perSystem system).devShell;
210+ });
211+
212+ packages = forAllSystems (
213+ system:
214+ let
215+ ps = perSystem system;
216+ in
217+ rec {
218+ default = headroom;
219+ headroom = ps.headroom;
220+ headroom-gui = ps.headroom-gui;
221+ }
222+ );
223+
224+ formatter = forAllSystems (system: (pkgsFor system).nixpkgs-fmt);
225+
226+ # System-independent outputs — modules.
227+ nixosModules.default = import ./nix/nixos-module.nix self;
228+ };
229+}
Added file: scripts/check-rust-file-sizes.sh+35 additions
@@ -0,0 +1,35 @@
1+#!/usr/bin/env bash
2+set -euo pipefail
3+
4+threshold="${1:-1000}"
5+
6+allowed='
7+crates/headroom-core/src/pw/registry.rs
8+crates/headroom-gui/src/app.rs
9+crates/headroom-core/src/profile_store.rs
10+crates/headroom-cli/src/tui.rs
11+crates/headroom-core/src/ipc/ops.rs
12+crates/headroom-dsp/src/limiter.rs
13+crates/headroom-core/src/app_level.rs
14+'
15+
16+is_allowed() {
17+ local file="$1"
18+ grep -qxF "$file" <<<"$allowed"
19+}
20+
21+status=0
22+while IFS= read -r -d '' file; do
23+ lines="$(wc -l <"$file")"
24+ if (( lines <= threshold )); then
25+ continue
26+ fi
27+ if is_allowed "$file"; then
28+ printf 'warn: %s has %s lines allowed over %s\n' "$file" "$lines" "$threshold"
29+ else
30+ printf 'error: %s has %s lines over %s\n' "$file" "$lines" "$threshold" >&2
31+ status=1
32+ fi
33+done < <(find crates -type f -name '*.rs' -print0 | sort -z)
34+
35+exit "$status"