Files
lemmy/Cargo.toml
T
Nutomic 794993767a Split apub code into multiple crates, other changes for faster building (#6031)
* Comment out joins for faster compile (ref #6012)

* cleanup

* revert report_combined

* comments

* add clean-workspace

* move api code out

* compile site view earlier

* compile post view earlier

* move code

* rename

* move activities to separate crate

* subfolder

* revert migrations

* fix tests

* fmt

* Use Box::pin for large futures

* move server to crates

* Move api_routes to separate crate

* fix tests
2025-10-01 23:57:38 +08:00

220 lines
8.7 KiB
TOML

[workspace.package]
version = "1.0.0-alpha.9"
edition = "2021"
description = "A link aggregator for the fediverse"
license = "AGPL-3.0"
homepage = "https://join-lemmy.org/"
documentation = "https://join-lemmy.org/docs/en/index.html"
repository = "https://github.com/LemmyNet/lemmy"
rust-version = "1.81"
# See https://github.com/johnthagen/min-sized-rust for additional optimizations
[profile.release]
lto = "fat"
opt-level = 3 # Optimize for speed, not size.
codegen-units = 1 # Reduce parallel code generation.
# This profile significantly speeds up build time. If debug info is needed you can comment the line
# out temporarily, but make sure to leave this in the main branch.
[profile.dev]
debug = 0
[workspace]
members = [
"crates/utils",
"crates/db_schema",
"crates/db_schema_file",
"crates/db_schema_setup",
"crates/email",
"crates/db_views/private_message",
"crates/db_views/local_user",
"crates/db_views/local_image",
"crates/db_views/person",
"crates/db_views/post",
"crates/db_views/vote",
"crates/db_views/local_image",
"crates/db_views/comment",
"crates/db_views/community",
"crates/db_views/community_moderator",
"crates/db_views/community_follower",
"crates/db_views/community_person_ban",
"crates/db_views/custom_emoji",
"crates/db_views/notification",
"crates/db_views/modlog_combined",
"crates/db_views/person_content_combined",
"crates/db_views/person_saved_combined",
"crates/db_views/person_liked_combined",
"crates/db_views/report_combined",
"crates/db_views/search_combined",
"crates/db_views/site",
"crates/api/api",
"crates/api/api_crud",
"crates/api/api_common",
"crates/api/api_utils",
"crates/api/routes",
"crates/apub/apub",
"crates/apub/activities",
"crates/apub/objects",
"crates/apub/send",
"crates/routes",
"crates/server",
]
resolver = "2"
# This line can be removed after upgrading to resolver = 3
incompatible-rust-versions = "fallback"
[workspace.lints.clippy]
cast_lossless = "deny"
complexity = { level = "deny", priority = -1 }
correctness = { level = "deny", priority = -1 }
dbg_macro = "deny"
explicit_into_iter_loop = "deny"
explicit_iter_loop = "deny"
get_first = "deny"
implicit_clone = "deny"
indexing_slicing = "deny"
inefficient_to_string = "deny"
items-after-statements = "deny"
manual_string_new = "deny"
needless_collect = "deny"
perf = { level = "deny", priority = -1 }
redundant_closure_for_method_calls = "deny"
style = { level = "deny", priority = -1 }
suspicious = { level = "deny", priority = -1 }
uninlined_format_args = "allow"
unused_self = "deny"
unwrap_used = "deny"
unimplemented = "deny"
unused_async = "deny"
map_err_ignore = "deny"
expect_used = "deny"
as_conversions = "deny"
large_futures = "deny"
[workspace.dependencies]
lemmy_api = { version = "=1.0.0-alpha.9", path = "./crates/api/api" }
lemmy_api_crud = { version = "=1.0.0-alpha.9", path = "./crates/api/api_crud" }
lemmy_api_routes = { version = "=1.0.0-alpha.9", path = "./crates/api/routes" }
lemmy_apub = { version = "=1.0.0-alpha.9", path = "./crates/apub/apub" }
lemmy_apub_activities = { version = "=1.0.0-alpha.9", path = "./crates/apub/activities" }
lemmy_apub_objects = { version = "=1.0.0-alpha.9", path = "./crates/apub/objects" }
lemmy_utils = { version = "=1.0.0-alpha.9", path = "./crates/utils", default-features = false }
lemmy_db_schema = { version = "=1.0.0-alpha.9", path = "./crates/db_schema" }
lemmy_db_schema_file = { version = "=1.0.0-alpha.9", path = "./crates/db_schema_file" }
lemmy_db_schema_setup = { version = "=1.0.0-alpha.9", path = "./crates/db_schema_setup" }
lemmy_api_utils = { version = "=1.0.0-alpha.9", path = "./crates/api/api_utils" }
lemmy_routes = { version = "=1.0.0-alpha.9", path = "./crates/routes" }
lemmy_apub_send = { version = "=1.0.0-alpha.9", path = "./crates/apub/send" }
lemmy_email = { version = "=1.0.0-alpha.9", path = "./crates/email" }
lemmy_db_views_comment = { version = "=1.0.0-alpha.9", path = "./crates/db_views/comment" }
lemmy_db_views_community = { version = "=1.0.0-alpha.9", path = "./crates/db_views/community" }
lemmy_db_views_community_follower = { version = "=1.0.0-alpha.9", path = "./crates/db_views/community_follower" }
lemmy_db_views_community_moderator = { version = "=1.0.0-alpha.9", path = "./crates/db_views/community_moderator" }
lemmy_db_views_community_person_ban = { version = "=1.0.0-alpha.9", path = "./crates/db_views/community_person_ban" }
lemmy_db_views_custom_emoji = { version = "=1.0.0-alpha.9", path = "./crates/db_views/custom_emoji" }
lemmy_db_views_notification = { version = "=1.0.0-alpha.9", path = "./crates/db_views/notification" }
lemmy_db_views_local_image = { version = "=1.0.0-alpha.9", path = "./crates/db_views/local_image" }
lemmy_db_views_local_user = { version = "=1.0.0-alpha.9", path = "./crates/db_views/local_user" }
lemmy_db_views_modlog_combined = { version = "=1.0.0-alpha.9", path = "./crates/db_views/modlog_combined" }
lemmy_db_views_person = { version = "=1.0.0-alpha.9", path = "./crates/db_views/person" }
lemmy_db_views_person_content_combined = { version = "=1.0.0-alpha.9", path = "./crates/db_views/person_content_combined" }
lemmy_db_views_person_liked_combined = { version = "=1.0.0-alpha.9", path = "./crates/db_views/person_liked_combined" }
lemmy_db_views_person_saved_combined = { version = "=1.0.0-alpha.9", path = "./crates/db_views/person_saved_combined" }
lemmy_db_views_post = { version = "=1.0.0-alpha.9", path = "./crates/db_views/post" }
lemmy_db_views_private_message = { version = "=1.0.0-alpha.9", path = "./crates/db_views/private_message" }
lemmy_db_views_readable_federation_state = { version = "=1.0.0-alpha.9", path = "./crates/db_views/readable_federation_state" }
lemmy_db_views_registration_applications = { version = "=1.0.0-alpha.9", path = "./crates/db_views/registration_applications" }
lemmy_db_views_report_combined = { version = "=1.0.0-alpha.9", path = "./crates/db_views/report_combined" }
lemmy_db_views_search_combined = { version = "=1.0.0-alpha.9", path = "./crates/db_views/search_combined" }
lemmy_db_views_site = { version = "=1.0.0-alpha.9", path = "./crates/db_views/site" }
lemmy_db_views_vote = { version = "=1.0.0-alpha.9", path = "./crates/db_views/vote" }
activitypub_federation = { version = "0.7.0-beta.6", default-features = false, features = [
"actix-web",
] }
diesel = { version = "2.2.12", features = [
"chrono",
"postgres",
"serde_json",
"uuid",
"64-column-tables",
] }
diesel_migrations = "2.2.0"
diesel-async = "0.5.2"
serde = { version = "1.0.225", features = ["derive"] }
serde_with = "3.14.0"
actix-web = { version = "4.11.0", default-features = false, features = [
"compress-brotli",
"compress-gzip",
"compress-zstd",
"cookies",
"macros",
"rustls-0_23",
] }
tracing = { version = "0.1.41", default-features = false }
tracing-actix-web = { version = "0.7.19", default-features = false }
tracing-subscriber = { version = "0.3.20", features = ["env-filter", "json"] }
url = { version = "2.5.7", features = ["serde"] }
reqwest = { version = "0.12.23", default-features = false, features = [
"blocking",
"gzip",
"json",
"rustls-tls",
] }
reqwest-middleware = "0.4.2"
reqwest-tracing = "0.5.8"
clokwerk = "0.4.0"
doku = { version = "0.21.1", features = ["url-2"] }
bcrypt = "0.17.1"
chrono = { version = "0.4.42", features = [
"now",
"serde",
], default-features = false }
serde_json = { version = "1.0.145", features = ["preserve_order"] }
base64 = "0.22.1"
uuid = { version = "1.18.1", features = ["serde"] }
captcha = "1.0.0"
anyhow = { version = "1.0.99", features = ["backtrace"] }
diesel_ltree = "0.4.0"
serial_test = "3.2.0"
tokio = { version = "1.47.1", features = ["full"] }
regex = "1.11.2"
diesel-derive-newtype = "2.1.2"
diesel-derive-enum = { version = "2.1.0", features = ["postgres"] }
enum-map = { version = "2.7" }
strum = { version = "0.27.2", features = ["derive"] }
itertools = "0.14.0"
futures = "0.3.31"
futures-util = "0.3.31"
http = "1.3"
rosetta-i18n = "0.1.3"
ts-rs = { version = "11.0.1", features = [
"chrono-impl",
"no-serde-warnings",
"url-impl",
] }
rustls = { version = "0.23.31", features = ["ring"] }
tokio-postgres = "0.7.13"
tokio-postgres-rustls = "0.13.0"
urlencoding = "2.1.3"
moka = { version = "0.12.10", features = ["future"] }
i-love-jesus = { version = "0.3.0" }
clap = { version = "4.5.47", features = ["derive", "env"] }
pretty_assertions = "1.4.1"
derive-new = "0.7.0"
html2text = "0.15.5"
async-trait = "0.1.89"
either = { version = "1.15.0", features = ["serde"] }
extism = { version = "1.12.0", default-features = false, features = [
"http",
"register-http",
"register-filesystem",
] }
extism-convert = "1.12.0"
unified-diff = "0.2.1"
diesel-uplete = { version = "0.2.0" }
# Speedup RSA key generation
# https://github.com/RustCrypto/RSA/blob/master/README.md#example
[profile.dev.package.num-bigint-dig]
opt-level = 3