[workspace] resolver = "3" members = [ "crates/quasi", "crates/quasi-axum", "crates/quasi-basics", "crates/quasi-http", "crates/quasi-router", "crates/quasi-store", "crates/quasi-tauri", "crates/quasi-tui", "crates/quasi-immediate", "crates/quasi-webview", ] # The scaffolder's template is real Rust and real manifests rather than liquid, # so that it is readable, greppable and diffable. Excluded because those # manifests name a crate that does not exist until `quasi new` renders them. exclude = ["crates/quasi/template"] [workspace.dependencies] [workspace.package] edition = "2024" # 1.85 is Rust 2024's floor and is what this was. Raised to 1.88 on 2026-08-08 # because the patched `time` (0.3.47, RUSTSEC-2026-0009) needs it, and a # declared floor that keeps a security fix out is buying nothing: nothing here # is published, and the toolchain is `stable`. rust-version = "1.88" authors = ["Max Johnson "] repository = "https://makenot.work/git/max/quasi" license = "MIT" [workspace.lints.rust] unsafe_code = "forbid" [workspace.lints.clippy] pedantic = { level = "warn", priority = -1 } # The house allow-list, tuned from a measured breakdown across # server/multithreaded/pter (2026-07-22) and carried verbatim from the makeover # crates. These are the high-churn / low-signal pedantic lints; everything else # in `pedantic` stays a warning. Keep this block identical across repos. module_name_repetitions = "allow" # Doc lints. No docs-completeness push is underway. missing_errors_doc = "allow" missing_panics_doc = "allow" doc_markdown = "allow" # Numeric casts. Endemic and mostly intentional in size and byte math. cast_possible_truncation = "allow" cast_sign_loss = "allow" cast_precision_loss = "allow" cast_possible_wrap = "allow" cast_lossless = "allow" # Subjective structure and style nags. High churn, low signal. must_use_candidate = "allow" too_many_lines = "allow" struct_excessive_bools = "allow" similar_names = "allow" items_after_statements = "allow" single_match_else = "allow" # Frequent false-positives in TUI and router-heavy code. match_same_arms = "allow" unnecessary_wraps = "allow" type_complexity = "allow" [profile.release] lto = "thin" codegen-units = 1 strip = "symbols" [profile.dev] opt-level = 1