Skip to main content

max / audiofiles

5.0 KB · 112 lines History Blame Raw
1 [workspace]
2 members = ["crates/audiofiles-core", "crates/audiofiles-browser", "crates/audiofiles-app", "crates/audiofiles-sync", "crates/audiofiles-rhai", "crates/audiofiles-bench"]
3 default-members = ["crates/audiofiles-core", "crates/audiofiles-browser", "crates/audiofiles-app", "crates/audiofiles-sync", "crates/audiofiles-rhai"]
4 resolver = "2"
5
6 [workspace.package]
7 edition = "2024"
8 license = "LicenseRef-PolyForm-Noncommercial-1.0.0"
9
10 [workspace.dependencies]
11 audiofiles-core = { path = "crates/audiofiles-core" }
12 audiofiles-browser = { path = "crates/audiofiles-browser" }
13 audiofiles-sync = { path = "crates/audiofiles-sync" }
14 audiofiles-rhai = { path = "crates/audiofiles-rhai" }
15 # Exact patch rather than the minor, as the suite itself pins: a minor-only
16 # requirement is satisfied by a lock holding an earlier patch, which then fails
17 # to compile against an API added in a later one. The two move together --
18 # makeover-immediate re-exports nothing, so the `Column` the app describes and
19 # the `Column` the renderer matches on have to be the same type.
20 makeover-layout = "0.44"
21 makeover-immediate = "0.46"
22 # The time axis. Minor rather than exact patch: it re-exports nothing and no
23 # type of its crosses a renderer boundary, so it is under the same rule as
24 # makeover-geometry above rather than the layout/immediate pair below.
25 makeover-timing = "0.1"
26 # The described screens, which are audiofiles-browser's screens. By git URL with
27 # a version requirement, per the tree's rule for cross-repo deps. They were
28 # behind a `quasi` feature until 2026-08-25, when the last flip landed.
29 quasi-router = { git = "https://makenot.work/git/max/quasi.git", version = "0.109" }
30 quasi-immediate = { git = "https://makenot.work/git/max/quasi.git", version = "0.109" }
31 quasi-declare = { git = "https://makenot.work/git/max/quasi.git", version = "0.1" }
32 egui = { version = "0.35", default-features = false, features = ["default_fonts"] }
33 egui_extras = { version = "0.35", default-features = false }
34 eframe = { version = "0.35", default-features = false, features = ["default_fonts", "glow"] }
35 cpal = "0.18"
36 # Keep this in step with synckit, which puts `rusqlite::Connection` in its public
37 # API: a version here that disagrees with synckit-client's co-links two
38 # libsqlite3-sys and fails the build rather than merely warning. The whole tree
39 # moved to 0.40 together on 2026-08-07 -- see wiki `sql-library-standard`.
40 rusqlite = { version = "0.40", features = ["bundled", "functions"] }
41 thiserror = "2.0.18"
42 sha2 = "0.11.0"
43 hex = "0.4.3"
44 symphonia = { version = "0.6.0", default-features = false, features = ["wav", "aiff", "mp3", "flac", "ogg", "vorbis", "pcm", "aac", "alac", "isomp4", "caf"] }
45 parking_lot = "0.12.5"
46 dirs = "6.0.0"
47 stratum-dsp = "=1.0.0"
48 bs1770 = "=1.0.0"
49 realfft = "3.5.0"
50 toml = "1.1"
51 rfd = "0.17"
52 pollster = "1.0"
53 serde = { version = "1.0.228", features = ["derive"] }
54 serde_json = "1.0.149"
55 rubato = "4.0"
56 hound = "3.5"
57 tracing = "0.1.44"
58 tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
59 rhai = { version = "1.21", features = ["sync"] }
60 tray-icon = "0.24"
61 tokio = { version = "1", features = ["rt-multi-thread", "macros", "time", "sync"] }
62 uuid = { version = "1", features = ["v4"] }
63 base64 = "0.22"
64 chrono = "0.4"
65 rand = "0.10"
66 # rustls-no-provider: rustls TLS with the OS-native trust store (rustls-platform-verifier);
67 # audiofiles-app installs the ring crypto provider once at startup.
68 reqwest = { version = "0.13", default-features = false, features = ["json", "rustls-no-provider"] }
69 rustls = { version = "0.23", default-features = false, features = ["std", "tls12", "logging", "ring"] }
70 semver = "1"
71 open = "5"
72 rayon = "1.10"
73 libc = "0.2"
74 midir = "0.11"
75 tagtree = { git = "https://makenot.work/git/max/makenotwork.git", version = "0.4" }
76 makeover = "3.1"
77 # The invariant half of the design system: relational spacing. makeover
78 # resolves colour, which a theme may override; this carries what no theme may.
79 makeover-geometry = "0.7"
80
81 [workspace.lints.rust]
82 unused = "warn"
83 unreachable_pub = "warn"
84
85 [workspace.lints.clippy]
86 pedantic = { level = "warn", priority = -1 }
87 # Allow-list tuned from a measured breakdown across server/multithreaded/pter
88 # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything
89 # else in `pedantic` stays a warning. Keep this block identical across repos.
90 module_name_repetitions = "allow"
91 # Doc lints. No docs-completeness push is underway.
92 missing_errors_doc = "allow"
93 missing_panics_doc = "allow"
94 doc_markdown = "allow"
95 # Numeric casts. Endemic and mostly intentional in size and byte math.
96 cast_possible_truncation = "allow"
97 cast_sign_loss = "allow"
98 cast_precision_loss = "allow"
99 cast_possible_wrap = "allow"
100 cast_lossless = "allow"
101 # Subjective structure and style nags. High churn, low signal.
102 must_use_candidate = "allow"
103 too_many_lines = "allow"
104 struct_excessive_bools = "allow"
105 similar_names = "allow"
106 items_after_statements = "allow"
107 single_match_else = "allow"
108 # Frequent false-positives in TUI and router-heavy code.
109 match_same_arms = "allow"
110 unnecessary_wraps = "allow"
111 type_complexity = "allow"
112