-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathCargo.toml
More file actions
154 lines (141 loc) · 5.37 KB
/
Copy pathCargo.toml
File metadata and controls
154 lines (141 loc) · 5.37 KB
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
146
147
148
149
150
151
152
153
[workspace]
members = [
".",
"packages/index-auth-keypair",
"packages/index-cli-common",
"packages/index-config",
"packages/index-config-probe",
"packages/index-entry-script",
"packages/index-health-check",
"packages/mudlark",
"packages/render-text-as-image",
]
[package]
default-run = "torrust-index"
name = "torrust-index"
authors.workspace = true
description.workspace = true
documentation.workspace = true
edition.workspace = true
homepage.workspace = true
keywords.workspace = true
license.workspace = true
publish.workspace = true
repository.workspace = true
rust-version.workspace = true
version = "4.0.0-develop"
[workspace.package]
authors = ["Nautilus Cyberneering <info@nautilus-cyberneering.de>, Mick van Dijke <mick@dutchbits.nl>"]
categories = ["network-programming", "web-programming"]
description = "A BitTorrent Index"
documentation = "https://docs.rs/torrust-index/"
edition = "2024"
homepage = "https://torrust.com/"
keywords = ["bittorrent", "file-sharing", "index", "peer-to-peer", "torrent"]
license = "AGPL-3.0-only"
publish = true
repository = "https://github.com/torrust/torrust-index"
rust-version = "1.89"
[features]
default = []
[profile.dev]
opt-level = 3
[profile.dev.package.sqlx-macros]
opt-level = 3
[dependencies]
torrust-index-cli-common = { version = "0.1.0", path = "packages/index-cli-common" }
torrust-index-config = { version = "0.1.0", path = "packages/index-config" }
torrust-index-render-text-as-image = { version = "0.1.0", path = "packages/render-text-as-image" }
# argon2 and pbkdf2 must stay on one `password-hash` major: the password
# verification path in `src/services/authentication.rs` parses a stored hash
# once and verifies it with whichever of the two the hash names, so a mismatch
# is a type error. Raising one without the other reproduces it immediately:
# rustc reports "multiple different versions of crate `password_hash` in the
# dependency graph" at the shared verification site.
argon2 = { version = "0.6", features = ["getrandom"] }
async-trait = "0.1"
axum = { version = "0.8", features = ["multipart"] }
axum-server = { version = "0.8", features = ["tls-rustls"] }
bytes = "1"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
clap = { version = "4", features = ["derive", "env"] }
derive_more = { version = "2", features = ["display"] }
email_address = "0.2"
figment = { version = "0.10", features = ["env", "test", "toml"] }
futures-util = "0.3"
hex = "0.4"
http = "1"
http-body = "1"
hyper = "1"
hyper-util = { version = "0.1", features = ["http1", "http2", "tokio"] }
indexmap = "2"
jsonwebtoken = { version = "11", features = ["rust_crypto"] }
lettre = { version = "0.11", features = [
"builder",
"file-transport-envelope",
"smtp-transport",
"tokio1",
"tokio1-native-tls",
"tokio1-rustls-tls",
] }
log = "0.4"
mockall = "0.15"
pbkdf2 = { version = "0.13", features = ["phc"] }
pin-project-lite = "0.2"
rand = "0.10"
regex = "1"
rsa = { version = "0.9", default-features = false, features = ["std", "pem"] }
reqwest = { version = "0.13", features = ["json", "multipart", "query"] }
serde = { version = "1", features = ["derive", "rc"] }
serde_bencode = "0.2"
serde_bytes = "0.11"
serde_derive = "1"
serde_json = "1"
sha-1 = "0.10"
sha2 = "0.11"
sqlx = { version = "0.8", features = ["migrate", "mysql", "runtime-tokio-native-tls", "sqlite", "time"] }
tera = { version = "2", default-features = false }
thiserror = "2"
tokio = { version = "1", features = ["fs", "io-util", "macros", "net", "rt-multi-thread", "signal", "sync", "time"] }
toml = "1"
torrust-info-hash = { version = "0.2", features = ["serde"] }
tower = { version = "0.5", features = ["timeout"] }
tower-http = { version = "0.7", features = ["compression-full", "cors", "propagate-header", "request-id", "trace"] }
tracing = "0.1"
url = { version = "2", features = ["serde"] }
urlencoding = "2"
uuid = { version = "1", features = ["v4"] }
[dev-dependencies]
tempfile = "3"
which = "8"
[lints]
workspace = true
[workspace.lints.rust]
deprecated_safe = { level = "deny", priority = -1 }
future_incompatible = { level = "deny", priority = -1 }
let_underscore = { level = "deny", priority = -1 }
nonstandard_style = { level = "deny", priority = -1 }
rust_2018_compatibility = { level = "deny", priority = -1 }
rust_2018_idioms = { level = "deny", priority = -1 }
rust_2021_compatibility = { level = "deny", priority = -1 }
rust_2024_compatibility = { level = "deny", priority = -1 }
unsafe_code = "warn"
unused = { level = "deny", priority = -2 }
warnings = { level = "deny", priority = -1 }
[workspace.lints.clippy]
all = { level = "deny", priority = -1 }
complexity = { level = "deny", priority = -1 }
correctness = { level = "deny", priority = -1 }
exit = { level = "deny", priority = 0 }
nursery = { level = "warn", priority = -1 }
pedantic = { level = "deny", priority = -1 }
perf = { level = "deny", priority = -1 }
print_stderr = { level = "deny", priority = 0 }
print_stdout = { level = "deny", priority = 0 }
style = { level = "deny", priority = -1 }
suspicious = { level = "deny", priority = -1 }
# The `async` on these signatures is contractual, not incidental: axum's
# `FromRequestParts` is an async trait, and the byte-cache methods are async so
# callers keep one shape if a future implementation does await. Dropping it
# would change the public API, which is a design decision, not a lint fix.
unused_async_trait_impl = { level = "allow", priority = 0 }