1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
[workspace]
members = [
"crates/turtle",
"crates/client",
"crates/server",
"crates/daemon",
"crates/common",
]
resolver = "2"
[workspace.package]
version = "20.0.1"
authors = [
"Ellie Huxtable <ellie@atuin.sh>",
"Soispha <soispha@vhack.eu>"
]
rust-version = "1.95.0"
license = "MIT"
repository = "https://git.foss-syndicate.org/bpeetz/forks/atuin"
readme = "README.md"
edition = "2024"
[workspace.dependencies]
turtle-api = { path = "crates/turtle", version = "20.0.1" }
turtle-common = { path = "crates/common", version = "20.0.1" }
turtle-daemon = { path = "crates/daemon", version = "20.0.1" }
axum = "0.8"
base64 = "0.23"
clap = { version = "4.6.6", features = ["derive"] }
clap_complete = "4.6.9"
clap_complete_nushell = "4.6.2"
colored = "3.1.1"
config = { version = "0.15.25", default-features = false, features = ["toml"] }
crossterm = {version = "0.29.0", features = ["use-dev-tty", "serde"] }
crypto_secretbox = "0.1.1"
dashmap = "6.2.1"
directories = "6.0.0"
eyre = "0.6"
fs-err = "3.3"
hyper-util = "0.1"
indicatif = "0.18.6"
interim = { version = "0.2.1", features = ["time_0_3"] }
listenfd = "1.0.2"
log = "0.4"
metrics = "0.24"
metrics-exporter-prometheus = { version = "0.18", default-features = false }
prost = "0.14"
rand = { version = "0.10.2", features = ["std"] }
regex = "1.13.1"
reqwest = { version = "0.13", features = ["json", "rustls-no-provider", "stream"], default-features = false }
rmp = { version = "0.8.15" }
runtime-format = "0.1.3"
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.28"
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.151"
serde_regex = "1.2.0"
serde_with = "3.22.0"
shellexpand = "3"
sql-builder = "3"
sqlx = { version = "0.9", features = ["runtime-tokio", "tls-rustls", "time", "postgres", "uuid", "sqlite", "regexp"] }
thiserror = "2"
time = { version = "0.3.55", features = [ "serde-human-readable", "macros", "local-offset", "macros", "formatting", "parsing"] }
tokio = { version = "1", features = ["full"] }
tokio-stream = { version = "0.1.19", features = ["net"] }
toml_edit = "0.25.13"
tonic = "0.14"
tonic-prost = "0.14"
tower = "0.5"
tower-http = { version = "0.7", features = ["trace"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["ansi", "fmt", "registry", "env-filter", "json"] }
typed-builder = "0.23.2"
unicode-segmentation = "1.13.3"
url = "2.5.8"
uuid = { version = "1.25", features = ["v4", "v7", "serde"] }
whoami = "2.1.3"
[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 }
|