2020-05-09 22:11:48 -07:00
|
|
|
[package]
|
2020-07-23 22:46:33 +02:00
|
|
|
name = "labrinth"
|
2023-02-01 10:08:02 -07:00
|
|
|
version = "2.7.0"
|
2022-07-31 13:29:20 -07:00
|
|
|
authors = ["geometrically <jai@modrinth.com>"]
|
2025-06-14 01:16:48 +02:00
|
|
|
edition.workspace = true
|
2025-08-16 17:47:11 +02:00
|
|
|
license = "AGPL-3.0-only"
|
2020-05-09 22:11:48 -07:00
|
|
|
|
2022-12-23 15:19:15 -05:00
|
|
|
# This seems redundant, but it's necessary for Docker to work
|
2020-07-23 22:46:33 +02:00
|
|
|
[[bin]]
|
|
|
|
|
name = "labrinth"
|
|
|
|
|
path = "src/main.rs"
|
|
|
|
|
|
2020-05-09 22:11:48 -07:00
|
|
|
[dependencies]
|
2025-05-15 22:47:29 +02:00
|
|
|
actix-web.workspace = true
|
|
|
|
|
actix-rt.workspace = true
|
|
|
|
|
actix-multipart.workspace = true
|
|
|
|
|
actix-cors.workspace = true
|
|
|
|
|
actix-ws.workspace = true
|
|
|
|
|
actix-files.workspace = true
|
|
|
|
|
prometheus.workspace = true
|
|
|
|
|
actix-web-prom = { workspace = true, features = ["process"] }
|
|
|
|
|
|
|
|
|
|
tracing.workspace = true
|
|
|
|
|
tracing-actix-web.workspace = true
|
|
|
|
|
console-subscriber.workspace = true
|
|
|
|
|
|
|
|
|
|
tokio = { workspace = true, features = ["sync", "rt-multi-thread"] }
|
|
|
|
|
tokio-stream.workspace = true
|
|
|
|
|
|
|
|
|
|
futures.workspace = true
|
|
|
|
|
futures-util.workspace = true
|
|
|
|
|
async-trait.workspace = true
|
|
|
|
|
dashmap.workspace = true
|
2025-05-22 03:34:36 -05:00
|
|
|
paste.workspace = true
|
2025-05-15 22:47:29 +02:00
|
|
|
|
|
|
|
|
meilisearch-sdk = { workspace = true, features = ["reqwest"] }
|
|
|
|
|
rust-s3.workspace = true
|
[DO NOT MERGE] Email notification system (#4338)
* Migration
* Fixup db models
* Redis
* Stuff
* Switch PKs to BIGSERIALs, insert to notifications_deliveries when inserting notifications
* Queue, templates
* Query cache
* Fixes, fixtures
* Perf, cache template data & HTML bodies
* Notification type configuration, ResetPassword notification type
* Reset password
* Query cache
* Clippy + fmt
* Traces, fix typo, fix user email in ResetPassword
* send_email
* Models, db
* Remove dead code, adjust notification settings in migration
* Clippy fmt
* Delete dead code, fixes
* Fmt
* Update apps/labrinth/src/queue/email.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Remove old fixtures
* Unify email retry delay
* Fix type
* External notifications
* Remove `notifications_types_preference_restrictions`, as user notification preferences is out of scope for this PR
* Query cache, fmt, clippy
* Fix join in get_many_user_exposed_on_site
* Remove migration comment
* Query cache
* Update html body urls
* Remove comment
* Add paymentfailed.service variable to PaymentFailed notification variant
* Fix compile error
* Fix deleting notifications
* Update apps/labrinth/src/database/models/user_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Update apps/labrinth/src/database/models/user_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Update Cargo.toml
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Update apps/labrinth/migrations/20250902133943_notification-extension.sql
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Address review comments
* Fix compliation
* Update apps/labrinth/src/database/models/users_notifications_preferences_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Use strfmt to format emails
* Configurable Reply-To
* Configurable Reply-To
* Refactor for email background task
* Send some emails inline
* Fix account creation email check
* Revert "Use strfmt to format emails"
This reverts commit e0d6614afe51fa6349918377e953ba294c34ae0b.
* Reintroduce fill_template
* Set password reset email inline
* Process more emails per index
* clippy fmt
* Query cache
---------
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
2025-09-15 15:02:29 -04:00
|
|
|
reqwest = { workspace = true, features = [
|
|
|
|
|
"http2",
|
|
|
|
|
"rustls-tls-webpki-roots",
|
|
|
|
|
"json",
|
|
|
|
|
"multipart",
|
|
|
|
|
] }
|
tweak(labrinth): drop last remaining dependency on system OpenSSL (#3982)
We standarized on using `rustls` as a TLS implementation across the
monorepo, which is written in Rust and has better ergonomics,
integration with the Rust ecosystem, and consistent behavior among
platforms. However, the Labrinth Clickhouse client was the last
remaining exception to this, using the native, OS-provided TLS
implementation, which on Linux is OpenSSL and requires developers and
Docker images to install OpenSSL development packages to build Labrinth,
in addition to introducing an additional runtime dependency to Labrinth.
Let's make the process of building Labrinth slightly simpler by
switching such client to `rustls` as well, which results in finally
using the same TLS implementation for everything, a simplified build and
distribution process, less transitive dependencies, and potentially
smaller binaries (since `rustls` was already being pulled in for, e.g.,
the SMTP client).
2025-07-12 15:39:41 +02:00
|
|
|
hyper-rustls.workspace = true
|
2025-05-15 22:47:29 +02:00
|
|
|
hyper-util.workspace = true
|
|
|
|
|
|
|
|
|
|
serde = { workspace = true, features = ["derive"] }
|
|
|
|
|
serde_json.workspace = true
|
|
|
|
|
serde_with.workspace = true
|
|
|
|
|
chrono = { workspace = true, features = ["serde"] }
|
|
|
|
|
yaserde = { workspace = true, features = ["derive"] }
|
|
|
|
|
|
|
|
|
|
rand.workspace = true
|
|
|
|
|
rand_chacha.workspace = true
|
|
|
|
|
bytes.workspace = true
|
|
|
|
|
base64.workspace = true
|
|
|
|
|
sha1.workspace = true
|
|
|
|
|
sha2.workspace = true
|
|
|
|
|
hmac.workspace = true
|
|
|
|
|
argon2.workspace = true
|
|
|
|
|
murmur2.workspace = true
|
|
|
|
|
bitflags.workspace = true
|
|
|
|
|
hex.workspace = true
|
|
|
|
|
zxcvbn.workspace = true
|
|
|
|
|
totp-rs = { workspace = true, features = ["gen_secret"] }
|
|
|
|
|
|
|
|
|
|
url.workspace = true
|
|
|
|
|
urlencoding.workspace = true
|
|
|
|
|
|
|
|
|
|
zip.workspace = true
|
|
|
|
|
|
|
|
|
|
itertools.workspace = true
|
|
|
|
|
|
|
|
|
|
validator = { workspace = true, features = ["derive"] }
|
|
|
|
|
regex.workspace = true
|
|
|
|
|
censor.workspace = true
|
|
|
|
|
spdx = { workspace = true, features = ["text"] }
|
|
|
|
|
|
|
|
|
|
dotenvy.workspace = true
|
|
|
|
|
thiserror.workspace = true
|
|
|
|
|
either.workspace = true
|
|
|
|
|
|
|
|
|
|
sqlx = { workspace = true, features = [
|
feat: consistently format all HTML, XML, JSON, CSS, JS, TS, SQL, TOML, YAML, and Markdown files as far as possible (#4193)
* feat: consistently format all HTML, XML, JSON, CSS, JS, TS, SQL, TOML, YAML, and Markdown files
* chore: deal with VS Code not being able to parse valid editorconfig syntax
Sometimes I'm surprised that computers even work.
* chore: get rid of IntelliJ IDE config files that should not be there
These were already added to the `.gitignore` a long time ago, and now
are being ignored by Prettier.
* fix: rename `tooling-config` `format` script to `fix` for it to run with Turbo
2025-08-16 19:40:31 +02:00
|
|
|
"runtime-tokio",
|
|
|
|
|
"tls-rustls-ring",
|
|
|
|
|
"postgres",
|
|
|
|
|
"chrono",
|
|
|
|
|
"macros",
|
|
|
|
|
"migrate",
|
|
|
|
|
"rust_decimal",
|
|
|
|
|
"json",
|
2023-10-06 17:58:02 -05:00
|
|
|
] }
|
[DO NOT MERGE] Email notification system (#4338)
* Migration
* Fixup db models
* Redis
* Stuff
* Switch PKs to BIGSERIALs, insert to notifications_deliveries when inserting notifications
* Queue, templates
* Query cache
* Fixes, fixtures
* Perf, cache template data & HTML bodies
* Notification type configuration, ResetPassword notification type
* Reset password
* Query cache
* Clippy + fmt
* Traces, fix typo, fix user email in ResetPassword
* send_email
* Models, db
* Remove dead code, adjust notification settings in migration
* Clippy fmt
* Delete dead code, fixes
* Fmt
* Update apps/labrinth/src/queue/email.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Remove old fixtures
* Unify email retry delay
* Fix type
* External notifications
* Remove `notifications_types_preference_restrictions`, as user notification preferences is out of scope for this PR
* Query cache, fmt, clippy
* Fix join in get_many_user_exposed_on_site
* Remove migration comment
* Query cache
* Update html body urls
* Remove comment
* Add paymentfailed.service variable to PaymentFailed notification variant
* Fix compile error
* Fix deleting notifications
* Update apps/labrinth/src/database/models/user_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Update apps/labrinth/src/database/models/user_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Update Cargo.toml
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Update apps/labrinth/migrations/20250902133943_notification-extension.sql
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Address review comments
* Fix compliation
* Update apps/labrinth/src/database/models/users_notifications_preferences_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Use strfmt to format emails
* Configurable Reply-To
* Configurable Reply-To
* Refactor for email background task
* Send some emails inline
* Fix account creation email check
* Revert "Use strfmt to format emails"
This reverts commit e0d6614afe51fa6349918377e953ba294c34ae0b.
* Reintroduce fill_template
* Set password reset email inline
* Process more emails per index
* clippy fmt
* Query cache
---------
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
2025-09-15 15:02:29 -04:00
|
|
|
rust_decimal = { workspace = true, features = [
|
|
|
|
|
"serde-with-float",
|
|
|
|
|
"serde-with-str",
|
|
|
|
|
] }
|
2025-05-16 23:44:03 +02:00
|
|
|
redis = { workspace = true, features = ["tokio-comp", "ahash", "r2d2"] }
|
2025-05-15 22:47:29 +02:00
|
|
|
deadpool-redis.workspace = true
|
|
|
|
|
clickhouse = { workspace = true, features = ["uuid", "time"] }
|
|
|
|
|
uuid = { workspace = true, features = ["v4", "fast-rng", "serde"] }
|
2023-08-02 14:43:04 -07:00
|
|
|
|
2025-05-15 22:47:29 +02:00
|
|
|
maxminddb.workspace = true
|
|
|
|
|
flate2.workspace = true
|
|
|
|
|
tar.workspace = true
|
2022-11-20 19:50:14 -07:00
|
|
|
|
2025-05-15 22:47:29 +02:00
|
|
|
sentry.workspace = true
|
|
|
|
|
sentry-actix.workspace = true
|
2022-12-29 17:20:50 -07:00
|
|
|
|
feat: consistently format all HTML, XML, JSON, CSS, JS, TS, SQL, TOML, YAML, and Markdown files as far as possible (#4193)
* feat: consistently format all HTML, XML, JSON, CSS, JS, TS, SQL, TOML, YAML, and Markdown files
* chore: deal with VS Code not being able to parse valid editorconfig syntax
Sometimes I'm surprised that computers even work.
* chore: get rid of IntelliJ IDE config files that should not be there
These were already added to the `.gitignore` a long time ago, and now
are being ignored by Prettier.
* fix: rename `tooling-config` `format` script to `fix` for it to run with Turbo
2025-08-16 19:40:31 +02:00
|
|
|
image = { workspace = true, features = [
|
|
|
|
|
"avif",
|
|
|
|
|
"bmp",
|
|
|
|
|
"dds",
|
|
|
|
|
"exr",
|
|
|
|
|
"ff",
|
|
|
|
|
"gif",
|
|
|
|
|
"hdr",
|
|
|
|
|
"ico",
|
|
|
|
|
"jpeg",
|
|
|
|
|
"png",
|
|
|
|
|
"pnm",
|
|
|
|
|
"qoi",
|
|
|
|
|
"tga",
|
|
|
|
|
"tiff",
|
|
|
|
|
"webp",
|
|
|
|
|
] }
|
2025-05-15 22:47:29 +02:00
|
|
|
color-thief.workspace = true
|
|
|
|
|
webp.workspace = true
|
2023-07-07 12:20:16 -07:00
|
|
|
|
2025-05-15 22:47:29 +02:00
|
|
|
woothee.workspace = true
|
2023-07-10 16:44:40 -07:00
|
|
|
|
2025-05-15 22:47:29 +02:00
|
|
|
lettre.workspace = true
|
2023-10-06 09:57:33 -07:00
|
|
|
|
2025-05-15 22:47:29 +02:00
|
|
|
rust_iso3166.workspace = true
|
2023-10-11 13:32:58 -05:00
|
|
|
|
[DO NOT MERGE] Email notification system (#4338)
* Migration
* Fixup db models
* Redis
* Stuff
* Switch PKs to BIGSERIALs, insert to notifications_deliveries when inserting notifications
* Queue, templates
* Query cache
* Fixes, fixtures
* Perf, cache template data & HTML bodies
* Notification type configuration, ResetPassword notification type
* Reset password
* Query cache
* Clippy + fmt
* Traces, fix typo, fix user email in ResetPassword
* send_email
* Models, db
* Remove dead code, adjust notification settings in migration
* Clippy fmt
* Delete dead code, fixes
* Fmt
* Update apps/labrinth/src/queue/email.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Remove old fixtures
* Unify email retry delay
* Fix type
* External notifications
* Remove `notifications_types_preference_restrictions`, as user notification preferences is out of scope for this PR
* Query cache, fmt, clippy
* Fix join in get_many_user_exposed_on_site
* Remove migration comment
* Query cache
* Update html body urls
* Remove comment
* Add paymentfailed.service variable to PaymentFailed notification variant
* Fix compile error
* Fix deleting notifications
* Update apps/labrinth/src/database/models/user_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Update apps/labrinth/src/database/models/user_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Update Cargo.toml
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Update apps/labrinth/migrations/20250902133943_notification-extension.sql
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Address review comments
* Fix compliation
* Update apps/labrinth/src/database/models/users_notifications_preferences_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
* Use strfmt to format emails
* Configurable Reply-To
* Configurable Reply-To
* Refactor for email background task
* Send some emails inline
* Fix account creation email check
* Revert "Use strfmt to format emails"
This reverts commit e0d6614afe51fa6349918377e953ba294c34ae0b.
* Reintroduce fill_template
* Set password reset email inline
* Process more emails per index
* clippy fmt
* Query cache
---------
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
2025-09-15 15:02:29 -04:00
|
|
|
async-stripe = { workspace = true, features = [
|
|
|
|
|
"billing",
|
|
|
|
|
"checkout",
|
|
|
|
|
"connect",
|
|
|
|
|
"webhook-events",
|
|
|
|
|
] }
|
2025-05-15 22:47:29 +02:00
|
|
|
rusty-money.workspace = true
|
|
|
|
|
json-patch.workspace = true
|
2024-01-27 18:13:52 -05:00
|
|
|
|
2025-05-15 22:47:29 +02:00
|
|
|
ariadne.workspace = true
|
2025-03-01 20:53:43 -08:00
|
|
|
|
2025-05-15 22:47:29 +02:00
|
|
|
clap = { workspace = true, features = ["derive"] }
|
2025-03-15 09:28:20 -05:00
|
|
|
|
2025-05-05 21:38:10 +02:00
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
feat: consistently format all HTML, XML, JSON, CSS, JS, TS, SQL, TOML, YAML, and Markdown files as far as possible (#4193)
* feat: consistently format all HTML, XML, JSON, CSS, JS, TS, SQL, TOML, YAML, and Markdown files
* chore: deal with VS Code not being able to parse valid editorconfig syntax
Sometimes I'm surprised that computers even work.
* chore: get rid of IntelliJ IDE config files that should not be there
These were already added to the `.gitignore` a long time ago, and now
are being ignored by Prettier.
* fix: rename `tooling-config` `format` script to `fix` for it to run with Turbo
2025-08-16 19:40:31 +02:00
|
|
|
tikv-jemallocator = { workspace = true, features = [
|
|
|
|
|
"profiling",
|
|
|
|
|
"unprefixed_malloc_on_supported_platforms",
|
|
|
|
|
] }
|
2025-05-15 22:47:29 +02:00
|
|
|
tikv-jemalloc-ctl = { workspace = true, features = ["stats"] }
|
|
|
|
|
jemalloc_pprof = { workspace = true, features = ["flamegraph"] }
|
2025-03-10 16:45:36 -05:00
|
|
|
|
2023-10-06 09:57:33 -07:00
|
|
|
[dev-dependencies]
|
2025-05-15 22:47:29 +02:00
|
|
|
actix-http.workspace = true
|
2025-03-25 01:10:43 -07:00
|
|
|
|
|
|
|
|
[build-dependencies]
|
2025-05-15 22:47:29 +02:00
|
|
|
dotenv-build.workspace = true
|
|
|
|
|
chrono.workspace = true
|
|
|
|
|
iana-time-zone.workspace = true
|
2025-06-14 01:16:48 +02:00
|
|
|
|
|
|
|
|
[lints]
|
|
|
|
|
workspace = true
|