mirror of
https://github.com/modrinth/code.git
synced 2026-08-25 00:55:25 +00:00
* feat(labrinth): initial preferences structure * feat(labrinth): use partially to derive partial structs * feat(labrinth): preference defaults * fix(labrinth): derive debug * feat(labrinth): user preferences db setup * feat(labrinth): user preferences routes * fix(labrinth): nested partial structs * fix(labrinth): serialize enums as snake case * refactor(labrinth-derive): rename to component-derive * feat(component-derive): nested components * refactor(component-derive): change suffixes to prefixes * refactor(component-derive): rename edit to partial * feat(component-derive): skip serializing empty option * refactor(labrinth): wrap errors * feat(component-derive): diff function * style(labrinth): fmt * refactor(labrinth): use component derive and only store overrides * chore: update query cache * docs(labrinth): add preferences to openapi * fix(labrinth): lock row for update * remove: partially * refactor(component-derive): split impls to separate functions * feat(component-derive): wrap impls to isolate naming * refactor(labrinth): split out auth conditions * feat(labrinth): store auto * feat(labrinth): store hosting privacy * style(labrinth): cargo fmt
178 lines
5.0 KiB
TOML
178 lines
5.0 KiB
TOML
[package]
|
|
name = "labrinth"
|
|
version = "2.7.0"
|
|
edition.workspace = true
|
|
license = "AGPL-3.0-only"
|
|
|
|
# This seems redundant, but it's necessary for Docker to work
|
|
[[bin]]
|
|
name = "labrinth"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
actix-cors = { workspace = true }
|
|
actix-files = { workspace = true }
|
|
actix-http = { workspace = true }
|
|
actix-multipart = { workspace = true }
|
|
actix-rt = { workspace = true }
|
|
actix-web = { workspace = true }
|
|
actix-web-prom = { workspace = true, features = ["process"] }
|
|
actix-ws = { workspace = true }
|
|
arc-swap = { workspace = true }
|
|
argon2 = { workspace = true }
|
|
ariadne = { workspace = true }
|
|
async-minecraft-ping = { workspace = true, features = ["srv"] }
|
|
async-stripe = { workspace = true, features = [
|
|
"billing",
|
|
"checkout",
|
|
"connect",
|
|
"webhook-events"
|
|
] }
|
|
async-trait = { workspace = true }
|
|
aws-sdk-s3 = { workspace = true }
|
|
base64 = { workspace = true }
|
|
bitflags = { workspace = true }
|
|
bytes = { workspace = true }
|
|
censor = { workspace = true }
|
|
chrono = { workspace = true, features = ["serde"] }
|
|
chumsky = { workspace = true }
|
|
clap = { workspace = true, features = ["derive"] }
|
|
clickhouse = { workspace = true, features = ["time", "uuid"] }
|
|
color-eyre = { workspace = true }
|
|
color-thief = { workspace = true }
|
|
component-derive = { workspace = true }
|
|
const_format = { workspace = true }
|
|
dashmap = { workspace = true }
|
|
derive_more = { workspace = true, features = ["deref", "deref_mut"] }
|
|
dotenvy = { workspace = true }
|
|
either = { workspace = true }
|
|
eyre = { workspace = true }
|
|
futures = { workspace = true }
|
|
futures-util = { workspace = true }
|
|
heck = { workspace = true }
|
|
hex = { workspace = true }
|
|
hmac = { workspace = true }
|
|
hyper-rustls = { workspace = true }
|
|
hyper-util = { workspace = true }
|
|
image = { workspace = true, features = [
|
|
"avif",
|
|
"bmp",
|
|
"dds",
|
|
"exr",
|
|
"ff",
|
|
"gif",
|
|
"hdr",
|
|
"ico",
|
|
"jpeg",
|
|
"png",
|
|
"pnm",
|
|
"qoi",
|
|
"tga",
|
|
"tiff",
|
|
"webp",
|
|
] }
|
|
itertools = { workspace = true }
|
|
json-patch = { workspace = true }
|
|
lettre = { workspace = true }
|
|
modrinth-content-management = { workspace = true }
|
|
modrinth-util = { workspace = true, features = ["decimal", "sentry", "utoipa"] }
|
|
muralpay = { workspace = true, features = ["client", "mock", "utoipa"] }
|
|
murmur2 = { workspace = true }
|
|
neverbounce = { workspace = true }
|
|
paste = { workspace = true }
|
|
path-util = { workspace = true }
|
|
postcard = { workspace = true }
|
|
prometheus = { workspace = true }
|
|
quick-xml = { workspace = true }
|
|
rand = { workspace = true }
|
|
rand_chacha = { workspace = true }
|
|
rdkafka = { workspace = true }
|
|
redis = { workspace = true, features = [
|
|
"ahash",
|
|
"cluster",
|
|
"cluster-async",
|
|
"r2d2",
|
|
"tokio-comp"
|
|
] }
|
|
regex = { workspace = true }
|
|
reqwest = { workspace = true, features = [
|
|
"http2",
|
|
"json",
|
|
"multipart",
|
|
"rustls-tls-webpki-roots"
|
|
] }
|
|
rust_decimal = { workspace = true, features = [
|
|
"serde-with-float",
|
|
"serde-with-str"
|
|
] }
|
|
rust_iso3166 = { workspace = true }
|
|
rustls.workspace = true
|
|
rusty-money = { workspace = true }
|
|
scalar_api_reference = { workspace = true, features = ["actix-web"] }
|
|
sentry = { workspace = true }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde-binhum = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
serde_with = { workspace = true }
|
|
sha1 = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
smallvec = { workspace = true }
|
|
spdx = { workspace = true, features = ["text"] }
|
|
sqlx = { workspace = true, features = [
|
|
"chrono",
|
|
"json",
|
|
"macros",
|
|
"migrate",
|
|
"postgres",
|
|
"runtime-tokio",
|
|
"rust_decimal",
|
|
"tls-rustls-aws-lc-rs",
|
|
] }
|
|
sqlx-tracing = { workspace = true, features = ["postgres"] }
|
|
strum = { workspace = true, features = ["derive"] }
|
|
thiserror = { workspace = true }
|
|
tokio = { workspace = true, features = ["rt-multi-thread", "sync"] }
|
|
tokio-stream = { workspace = true }
|
|
totp-rs = { workspace = true, features = ["gen_secret"] }
|
|
tracing = { workspace = true }
|
|
tracing-actix-web = { workspace = true }
|
|
url = { workspace = true }
|
|
urlencoding = { workspace = true }
|
|
utoipa = { workspace = true, features = ["url"] }
|
|
uuid = { workspace = true, features = ["fast-rng", "serde", "v4", "v7"] }
|
|
validator = { workspace = true, features = ["derive"] }
|
|
webauthn-rs = { workspace = true, features = [
|
|
"conditional-ui",
|
|
"danger-allow-state-serialisation"
|
|
] }
|
|
webauthn-rs-proto = { workspace = true }
|
|
webp = { workspace = true }
|
|
woothee = { workspace = true }
|
|
xredis = { workspace = true }
|
|
yaserde = { workspace = true, features = ["derive"] }
|
|
zip = { workspace = true }
|
|
zxcvbn = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
labrinth = { path = ".", features = ["test"] }
|
|
tokio = { workspace = true, features = ["test-util"] }
|
|
|
|
[build-dependencies]
|
|
chrono = { workspace = true }
|
|
dotenv-build = { workspace = true }
|
|
iana-time-zone = { workspace = true }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
jemalloc_pprof = { workspace = true, features = ["flamegraph"] }
|
|
tikv-jemalloc-ctl = { workspace = true, features = ["stats"] }
|
|
tikv-jemallocator = { workspace = true, features = [
|
|
"profiling",
|
|
"unprefixed_malloc_on_supported_platforms",
|
|
] }
|
|
|
|
[features]
|
|
test = ["xredis/test"]
|
|
|
|
[lints]
|
|
workspace = true
|