[workspace.package] version = "0.19.6-beta.7" 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" [package] name = "lemmy_server" version.workspace = true edition.workspace = true description.workspace = true license.workspace = true homepage.workspace = true documentation.workspace = true repository.workspace = true publish = false [lib] doctest = false [lints] workspace = true # See https://github.com/johnthagen/min-sized-rust for additional optimizations [profile.release] debug = 0 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 [features] json-log = ["tracing-subscriber/json"] default = [] [workspace] members = [ "crates/api", "crates/api_crud", "crates/api_common", "crates/apub", "crates/utils", "crates/db_perf", "crates/db_schema", "crates/db_views", "crates/routes", "crates/federate", ] [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" [workspace.dependencies] lemmy_api = { version = "=0.19.6-beta.7", path = "./crates/api" } lemmy_api_crud = { version = "=0.19.6-beta.7", path = "./crates/api_crud" } lemmy_apub = { version = "=0.19.6-beta.7", path = "./crates/apub" } lemmy_utils = { version = "=0.19.6-beta.7", path = "./crates/utils", default-features = false } lemmy_db_schema = { version = "=0.19.6-beta.7", path = "./crates/db_schema" } lemmy_api_common = { version = "=0.19.6-beta.7", path = "./crates/api_common" } lemmy_routes = { version = "=0.19.6-beta.7", path = "./crates/routes" } lemmy_db_views = { version = "=0.19.6-beta.7", path = "./crates/db_views" } lemmy_federate = { version = "=0.19.6-beta.7", path = "./crates/federate" } activitypub_federation = { version = "0.6.1", default-features = false, features = [ "actix-web", ] } diesel = "2.2.4" diesel_migrations = "2.2.0" diesel-async = "0.5.1" serde = { version = "1.0.215", features = ["derive"] } serde_with = "3.9.0" actix-web = { version = "4.9.0", default-features = false, features = [ "macros", "rustls-0_23", "compress-brotli", "compress-gzip", "compress-zstd", "cookies", ] } tracing = "0.1.40" tracing-actix-web = { version = "0.7.10", default-features = false } tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = { version = "2.5.3", features = ["serde"] } reqwest = { version = "0.12.7", default-features = false, features = [ "json", "blocking", "gzip", "rustls-tls", ] } reqwest-middleware = "0.3.3" reqwest-tracing = "0.5.3" clokwerk = "0.4.0" doku = { version = "0.21.1", features = ["url-2"] } bcrypt = "0.15.1" chrono = { version = "0.4.38", features = [ "serde", "now", ], default-features = false } serde_json = { version = "1.0.132", features = ["preserve_order"] } base64 = "0.22.1" uuid = { version = "1.11.0", features = ["serde"] } async-trait = "0.1.83" captcha = "0.0.9" anyhow = { version = "1.0.93", features = [ "backtrace", ] } # backtrace is on by default on nightly, but not stable rust diesel_ltree = "0.3.1" serial_test = "3.2.0" tokio = { version = "1.41.1", features = ["full"] } regex = "1.11.1" diesel-derive-newtype = "2.1.2" diesel-derive-enum = { version = "2.1.0", features = ["postgres"] } strum = { version = "0.26.3", features = ["derive"] } itertools = "0.13.0" futures = "0.3.31" http = "1.1" rosetta-i18n = "0.1.3" ts-rs = { version = "10.0.0", features = [ "serde-compat", "chrono-impl", "no-serde-warnings", "url-impl", ] } rustls = { version = "0.23.16", features = ["ring"] } futures-util = "0.3.31" tokio-postgres = "0.7.12" tokio-postgres-rustls = "0.12.0" urlencoding = "2.1.3" enum-map = "2.7" moka = { version = "0.12.8", features = ["future"] } i-love-jesus = { version = "0.1.0" } clap = { version = "4.5.21", features = ["derive", "env"] } pretty_assertions = "1.4.1" derive-new = "0.7.0" diesel-bind-if-some = "0.1.0" tuplex = "0.1.2" [dependencies] lemmy_api = { workspace = true } lemmy_api_crud = { workspace = true } lemmy_apub = { workspace = true } lemmy_utils = { workspace = true } lemmy_db_schema = { workspace = true } lemmy_api_common = { workspace = true } lemmy_routes = { workspace = true } lemmy_federate = { workspace = true } activitypub_federation = { workspace = true } diesel = { workspace = true } diesel-async = { workspace = true } actix-web = { workspace = true } tracing = { workspace = true } tracing-actix-web = { workspace = true } tracing-subscriber = { workspace = true } url = { workspace = true } reqwest = { workspace = true } reqwest-middleware = { workspace = true } reqwest-tracing = { workspace = true } clokwerk = { workspace = true } serde_json = { workspace = true } rustls = { workspace = true } tokio.workspace = true actix-cors = "0.7.0" futures-util = { workspace = true } chrono = { workspace = true } prometheus = { version = "0.13.4", features = ["process"] } serial_test = { workspace = true } clap = { workspace = true } actix-web-prom = "0.9.0" [dev-dependencies] pretty_assertions = { workspace = true }