[workspace] members = [ "apps/desktop/src-tauri", "crates/inkfinite-cli", "crates/inkfinite-core", "crates/inkfinite-mcp", "crates/inkfinite-wasm", "xtask", ] resolver = "2" [workspace.package] edition = "2024" license = "Apache-2.0" rust-version = "1.89" version = "0.1.0" [workspace.dependencies] anyhow = "1.0.103" automerge = "=0.10.0" base64 = "0.22.1" clap = { version = "4.6.1", features = ["derive"] } clap_complete = "4.6.9" clap_mangen = "0.2.33" inkfinite-core = { path = "crates/inkfinite-core" } rmcp = { version = "3.1.2", default-features = false, features = ["server", "macros", "transport-io"] } perfect_freehand = "=0.1.1" resvg = { version = "=0.48.1", default-features = false, features = ["raster-images", "system-fonts", "text"] } roxmltree = "0.21.1" schemars = "1.2.1" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" getrandom = { version = "0.4.3", features = ["wasm_js"] } i_overlay = "8.1.0" sha2 = "0.10.9" wasm-bindgen = "=0.2.126" svgtypes = "0.16.1" tokio = { version = "1.48", default-features = false, features = ["io-util", "macros", "rt", "sync"] } ts-rs = { version = "12.0.1", features = ["no-serde-warnings", "serde-json-impl"] } thiserror = "2.0" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] } criterion = { version = "0.7", features = ["html_reports"] } [profile.profiling] inherits = "release" debug = true debug-assertions = false overflow-checks = false strip = "none" [workspace.lints.rust] unsafe_code = "forbid" [workspace.lints.clippy] bool_comparison = "deny" duplicate_mod = "deny" inconsistent_struct_constructor = "deny" invalid_regex = "deny" mem_forget = "deny" mixed_case_hex_literals = "deny" suspicious_arithmetic_impl = "deny" uninit_assumed_init = "deny" suspicious_else_formatting = "deny" suspicious_op_assign_impl = "deny" suspicious_to_owned = "deny" cmp_owned = "deny" cmp_null = "deny" manual_map = "deny" too_many_arguments = "warn" cognitive_complexity = "warn" large_enum_variant = "warn" needless_borrow = "warn" needless_pass_by_value = "warn" redundant_clone = "warn" unnecessary_cast = "warn" inefficient_to_string = "warn" or_fun_call = "warn" unnecessary_to_owned = "warn" map_clone = "warn" flat_map_identity = "warn" needless_collect = "warn" vec_init_then_push = "warn" len_zero = "allow" range_plus_one = "allow" manual_range_contains = "allow"