[workspace] members = [ "crates/turtle", "crates/client", "crates/server", "crates/daemon", "crates/common", ] resolver = "2" [workspace.package] version = "18.16.1" authors = ["Ellie Huxtable "] rust-version = "1.95.0" license = "MIT" homepage = "https://atuin.sh" repository = "https://github.com/atuinsh/atuin" readme = "README.md" [workspace.dependencies] turtle-api = { path = "crates/turtle" } turtle-common = { path = "crates/common" } turtle-daemon = { path = "crates/daemon" } axum = "0.8" base64 = "0.22" clap = { version = "4.5.7", features = ["derive"] } clap_complete = "4.5.8" clap_complete_nushell = "4.5.4" colored = "2.0.4" config = { version = "0.15.8", default-features = false, features = ["toml"] } crossterm = {version = "0.29.0", features = ["use-dev-tty", "serde"] } crypto_secretbox = "0.1.1" dashmap = "6.1.0" directories = "6.0.0" eyre = "0.6" fs-err = "3.1" fs4 = "0.13.1" hyper-util = "0.1" indicatif = "0.18.0" interim = { version = "0.2.0", features = ["time_0_3"] } listenfd = "1.0.1" log = "0.4" metrics = "0.24" metrics-exporter-prometheus = { version = "0.18", default-features = false } prost = "0.14" rand = { version = "0.8.5", features = ["std"] } regex = "1.10.5" reqwest = { version = "0.13", features = ["json", "rustls-no-provider", "stream"], default-features = false } rmp = { version = "0.8.14" } rustix = { version = "1.1.4", features = ["process", "fs"] } rustls = { version = "0.23", default-features = false, features = [ "ring", "std", "tls12", ] } rusty_paserk = { version = "0.5.0", default-features = false, features = [ "v4", "serde", ] } rusty_paseto = { version = "0.8.0", default-features = false } semver = "1.0.20" serde = { version = "1.0.202", features = ["derive"] } serde_json = "1.0.119" serde_regex = "1.1.0" serde_with = "3.8.1" shellexpand = "3" sql-builder = "3" sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "time", "postgres", "uuid", "sqlite", "regexp"] } thiserror = "2" time = { version = "0.3.47", features = [ "serde-human-readable", "macros", "local-offset", "macros", "formatting", "parsing"] } tokio = { version = "1", features = ["full"] } tokio-stream = { version = "0.1.14", features = ["net"] } toml_edit = "0.25.4" tonic = "0.14" tonic-prost = "0.14" tower = "0.5" tower-http = { version = "0.6", features = ["trace"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["ansi", "fmt", "registry", "env-filter", "json"] } typed-builder = "0.18.2" unicode-segmentation = "1.11.0" url = "2.5.2" uuid = { version = "1.9", features = ["v4", "v7", "serde"] } whoami = "2.1.0" [profile.profiling] inherits = "release" debug = true [profile.release] lto = true codegen-units = 1 panic = "abort" split-debuginfo = "off" [workspace.lints.rust] # rustc lint groups https://doc.rust-lang.org/rustc/lints/groups.html warnings = "warn" future_incompatible = { level = "warn", priority = -1 } let_underscore = { level = "warn", priority = -1 } nonstandard_style = { level = "warn", priority = -1 } rust_2018_compatibility = { level = "warn", priority = -1 } rust_2018_idioms = { level = "warn", priority = -1 } rust_2021_compatibility = { level = "warn", priority = -1 } unused = { level = "warn", priority = -1 } # rustc allowed-by-default lints https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html # missing_docs = "warn" macro_use_extern_crate = "warn" meta_variable_misuse = "warn" missing_abi = "warn" missing_copy_implementations = "warn" missing_debug_implementations = "warn" non_ascii_idents = "warn" noop_method_call = "warn" single_use_lifetimes = "warn" trivial_casts = "warn" trivial_numeric_casts = "warn" unreachable_pub = "warn" unsafe_op_in_unsafe_fn = "warn" unused_crate_dependencies = "warn" unused_import_braces = "warn" unused_lifetimes = "warn" unused_qualifications = "warn" variant_size_differences = "warn" [workspace.lints.rustdoc] # rustdoc lints https://doc.rust-lang.org/rustdoc/lints.html broken_intra_doc_links = "warn" private_intra_doc_links = "warn" missing_crate_level_docs = "warn" private_doc_tests = "warn" invalid_codeblock_attributes = "warn" invalid_rust_codeblocks = "warn" bare_urls = "warn" [workspace.lints.clippy] # clippy allowed by default dbg_macro = "warn" # clippy categories https://doc.rust-lang.org/clippy/ all = { level = "warn", priority = -1 } correctness = { level = "warn", priority = -1 } suspicious = { level = "warn", priority = -1 } style = { level = "warn", priority = -1 } complexity = { level = "warn", priority = -1 } perf = { level = "warn", priority = -1 } pedantic = { level = "warn", priority = -1 }