You've already forked AstralRinth
272 lines
7.3 KiB
TOML
272 lines
7.3 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"apps/app",
|
|
"apps/app-playground",
|
|
"apps/daedalus_client",
|
|
"apps/labrinth",
|
|
"packages/app-lib",
|
|
"packages/ariadne",
|
|
"packages/daedalus",
|
|
"packages/modrinth-log",
|
|
"packages/modrinth-maxmind",
|
|
"packages/modrinth-util",
|
|
"packages/path-util",
|
|
]
|
|
|
|
[workspace.package]
|
|
edition = "2024"
|
|
rust-version = "1.90.0"
|
|
repository = "https://github.com/modrinth/code"
|
|
|
|
[workspace.dependencies]
|
|
actix-cors = "0.7.1"
|
|
actix-files = "0.6.8"
|
|
actix-http = "3.11.2"
|
|
actix-multipart = "0.7.2"
|
|
actix-rt = "2.11.0"
|
|
actix-web = "4.11.0"
|
|
actix-web-prom = "0.10.0"
|
|
actix-ws = "0.3.0"
|
|
arc-swap = "1.7.1"
|
|
argon2 = { version = "0.5.3", features = ["std"] }
|
|
ariadne = { path = "packages/ariadne" }
|
|
async-compression = { version = "0.4.32", default-features = false }
|
|
async-recursion = "1.1.1"
|
|
async-stripe = { version = "0.41.0", default-features = false, features = [
|
|
"runtime-tokio-hyper-rustls",
|
|
] }
|
|
async-trait = "0.1.89"
|
|
async-tungstenite = { version = "0.31.0", default-features = false, features = [
|
|
"futures-03-sink"
|
|
] }
|
|
async-walkdir = "2.1.0"
|
|
async_zip = "0.0.18"
|
|
base64 = "0.22.1"
|
|
bitflags = "2.9.4"
|
|
bytemuck = "1.24.0"
|
|
bytes = "1.10.1"
|
|
censor = "0.3.0"
|
|
chardetng = "0.1.17"
|
|
chrono = "0.4.42"
|
|
cidre = { version = "0.11.3", default-features = false, features = [
|
|
"macos_15_0"
|
|
] }
|
|
clap = "4.5.48"
|
|
clickhouse = "0.14.0"
|
|
color-eyre = "0.6.5"
|
|
color-thief = "0.2.2"
|
|
const_format = "0.2.34"
|
|
daedalus = { path = "packages/daedalus" }
|
|
dashmap = "6.1.0"
|
|
data-url = "0.3.2"
|
|
deadpool-redis = "0.22.0"
|
|
derive_more = "2.0.1"
|
|
directories = "6.0.0"
|
|
dirs = "6.0.0"
|
|
discord-rich-presence = "1.0.0"
|
|
dotenv-build = "0.1.1"
|
|
dotenvy = "0.15.7"
|
|
dunce = "1.0.5"
|
|
either = "1.15.0"
|
|
encoding_rs = "0.8.35"
|
|
enumset = "1.1.10"
|
|
eyre = "0.6.12"
|
|
flate2 = "1.1.4"
|
|
fs4 = { version = "0.13.1", default-features = false }
|
|
futures = "0.3.31"
|
|
futures-util = "0.3.31"
|
|
heck = "0.5.0"
|
|
hex = "0.4.3"
|
|
hickory-resolver = "0.25.2"
|
|
hmac = "0.12.1"
|
|
hyper = "1.7.0"
|
|
hyper-rustls = { version = "0.27.7", default-features = false, features = [
|
|
"aws-lc-rs",
|
|
"http1",
|
|
"native-tokio",
|
|
"tls12",
|
|
] }
|
|
hyper-util = "0.1.17"
|
|
iana-time-zone = "0.1.64"
|
|
image = { version = "0.25.8", default-features = false, features = ["rayon"] }
|
|
indexmap = "2.11.4"
|
|
indicatif = "0.18.0"
|
|
itertools = "0.14.0"
|
|
jemalloc_pprof = "0.8.1"
|
|
json-patch = { version = "4.1.0", default-features = false }
|
|
lettre = { version = "0.11.19", default-features = false, features = [
|
|
"aws-lc-rs",
|
|
"builder",
|
|
"hostname",
|
|
"pool",
|
|
"rustls",
|
|
"rustls-native-certs",
|
|
"smtp-transport",
|
|
"tokio1",
|
|
"tokio1-rustls",
|
|
] }
|
|
maxminddb = "0.26.0"
|
|
meilisearch-sdk = { version = "0.30.0", default-features = false }
|
|
modrinth-log = { path = "packages/modrinth-log" }
|
|
modrinth-util = { path = "packages/modrinth-util" }
|
|
muralpay = { path = "packages/muralpay" }
|
|
murmur2 = "0.1.0"
|
|
native-dialog = "0.9.2"
|
|
notify = { version = "8.2.0", default-features = false }
|
|
notify-debouncer-mini = { version = "0.7.0", default-features = false }
|
|
p256 = "0.13.2"
|
|
paste = "1.0.15"
|
|
path-util = { path = "packages/path-util" }
|
|
phf = { version = "0.13.1", features = ["macros"] }
|
|
png = "0.18.0"
|
|
prometheus = "0.14.0"
|
|
quartz_nbt = "0.2.9"
|
|
quick-xml = "0.38.3"
|
|
rand = "=0.8.5" # Locked on 0.8 until argon2 and p256 update to 0.9
|
|
rand_chacha = "=0.3.1" # Locked on 0.3 until we can update rand to 0.9
|
|
redis = "0.32.7"
|
|
regex = "1.12.2"
|
|
reqwest = { version = "0.12.24", default-features = false }
|
|
rgb = "0.8.52"
|
|
rust_decimal = { version = "1.39.0", features = [
|
|
"serde-with-float",
|
|
"serde-with-str"
|
|
] }
|
|
rust_iso3166 = "0.1.14"
|
|
rust-s3 = { version = "0.37.0", default-features = false, features = [
|
|
"fail-on-err",
|
|
"tags",
|
|
"tokio-rustls-tls",
|
|
] }
|
|
rustls = "0.23.32"
|
|
rusty-money = "0.4.1"
|
|
secrecy = "0.10.3"
|
|
sentry = { version = "0.45.0", default-features = false, features = [
|
|
"backtrace",
|
|
"contexts",
|
|
"debug-images",
|
|
"panic",
|
|
"reqwest",
|
|
"rustls",
|
|
] }
|
|
serde = "1.0.228"
|
|
serde_bytes = "0.11.19"
|
|
serde_cbor = "0.11.2"
|
|
serde_ini = "0.2.0"
|
|
serde_json = "1.0.145"
|
|
serde_with = "3.15.0"
|
|
serde-xml-rs = "0.8.1" # Also an XML (de)serializer, consider dropping yaserde in favor of this
|
|
sha1 = "0.10.6"
|
|
sha1_smol = { version = "1.0.1", features = ["std"] }
|
|
sha2 = "0.10.9"
|
|
shlex = "1.3.0"
|
|
spdx = "0.12.0"
|
|
sqlx = { version = "0.8.6", default-features = false }
|
|
strum = "0.27.2"
|
|
sysinfo = { version = "0.37.2", default-features = false }
|
|
tar = "0.4.44"
|
|
tauri = "2.8.5"
|
|
tauri-build = "2.4.1"
|
|
tauri-plugin-deep-link = "2.4.3"
|
|
tauri-plugin-dialog = "2.4.0"
|
|
tauri-plugin-http = "2.5.2"
|
|
tauri-plugin-opener = "2.5.0"
|
|
tauri-plugin-os = "2.3.1"
|
|
tauri-plugin-single-instance = "2.3.4"
|
|
tauri-plugin-updater = { version = "2.9.0", default-features = false, features = [
|
|
"rustls-tls",
|
|
"zip",
|
|
] }
|
|
tauri-plugin-window-state = "2.4.0"
|
|
tempfile = "3.23.0"
|
|
theseus = { path = "packages/app-lib" }
|
|
thiserror = "2.0.17"
|
|
tikv-jemalloc-ctl = "0.6.0"
|
|
tikv-jemallocator = "0.6.0"
|
|
tokio = "1.47.1"
|
|
tokio-stream = "0.1.17"
|
|
tokio-util = "0.7.16"
|
|
totp-rs = "5.7.0"
|
|
tracing = "0.1.41"
|
|
tracing-actix-web = { version = "0.7.19", default-features = false }
|
|
tracing-ecs = "0.5.0"
|
|
tracing-error = "0.2.1"
|
|
tracing-subscriber = "0.3.20"
|
|
typed-path = "0.12.0"
|
|
url = "2.5.7"
|
|
urlencoding = "2.1.3"
|
|
utoipa = { version = "5.4.0", features = ["actix_extras", "chrono", "decimal"] }
|
|
utoipa-actix-web = { version = "0.1.2" }
|
|
utoipa-swagger-ui = { version = "9.0.2", features = ["actix-web", "vendored"] }
|
|
uuid = "1.18.1"
|
|
validator = "0.20.0"
|
|
webp = { version = "0.3.1", default-features = false }
|
|
webview2-com = "0.38.0" # Should be updated in lockstep with wry
|
|
whoami = "1.6.1"
|
|
windows = "=0.61.3" # Locked on 0.61 until we can update windows-core to 0.62
|
|
windows-core = "=0.61.2" # Locked on 0.61 until webview2-com updates to 0.62
|
|
winreg = "0.55.0"
|
|
woothee = "0.13.0"
|
|
yaserde = "0.12.0"
|
|
zbus = "5.11.0"
|
|
zip = { version = "6.0.0", default-features = false, features = [
|
|
"bzip2",
|
|
"deflate",
|
|
"deflate64",
|
|
"zstd",
|
|
] }
|
|
zxcvbn = "3.1.0"
|
|
|
|
[workspace.lints.clippy]
|
|
bool_to_int_with_if = "warn"
|
|
borrow_as_ptr = "warn"
|
|
cfg_not_test = "warn"
|
|
clear_with_drain = "warn"
|
|
cloned_instead_of_copied = "warn"
|
|
collection_is_never_read = "warn"
|
|
dbg_macro = "warn"
|
|
default_trait_access = "warn"
|
|
explicit_iter_loop = "warn"
|
|
filter_map_next = "warn"
|
|
flat_map_option = "warn"
|
|
format_push_string = "warn"
|
|
get_unwrap = "warn"
|
|
large_include_file = "warn"
|
|
large_stack_arrays = "warn"
|
|
manual_assert = "warn"
|
|
manual_instant_elapsed = "warn"
|
|
manual_is_variant_and = "warn"
|
|
manual_let_else = "warn"
|
|
map_unwrap_or = "allow"
|
|
match_bool = "warn"
|
|
needless_collect = "warn"
|
|
negative_feature_names = "warn"
|
|
non_std_lazy_statics = "warn"
|
|
pathbuf_init_then_push = "warn"
|
|
read_zero_byte_vec = "warn"
|
|
redundant_clone = "warn"
|
|
redundant_feature_names = "warn"
|
|
redundant_type_annotations = "warn"
|
|
todo = "warn"
|
|
too_many_arguments = "allow"
|
|
uninlined_format_args = "warn"
|
|
unnested_or_patterns = "warn"
|
|
wildcard_dependencies = "warn"
|
|
|
|
[profile.dev.package.sqlx-macros]
|
|
opt-level = 3
|
|
|
|
# Optimize for speed and reduce size on release builds
|
|
[profile.release]
|
|
opt-level = "s" # Optimize for binary size
|
|
strip = true # Remove debug symbols
|
|
lto = true # Enables link to optimizations
|
|
panic = "abort" # Strip expensive panic clean-up logic
|
|
codegen-units = 1 # Compile crates one after another so the compiler can optimize better
|
|
|
|
# Specific profile for labrinth production builds
|
|
[profile.release-labrinth]
|
|
inherits = "release"
|
|
panic = "unwind" # Don't exit the whole app on panic in production
|