[workspace.package] version = "0.19.4-beta.2" 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 [profile.release] debug = 0 lto = "thin" strip = true # Automatically strip symbols from the binary. opt-level = "z" # Optimize for size. # 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] embed-pictrs = ["pict-rs"] # This feature requires building with `tokio_unstable` flag, see documentation: # https://docs.rs/tokio/latest/tokio/#unstable-features console = [ "console-subscriber", "opentelemetry", "opentelemetry-otlp", "tracing-opentelemetry", "reqwest-tracing/opentelemetry_0_16", ] 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/db_views_actor", "crates/db_views_actor", "crates/routes", "crates/federate", ] [workspace.lints.clippy] cast_lossless = "deny" complexity = "deny" correctness = "deny" 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 = "deny" redundant_closure_for_method_calls = "deny" style = "deny" suspicious = "deny" uninlined_format_args = "allow" unused_self = "deny" unwrap_used = "deny" [workspace.dependencies] lemmy_api = { version = "=0.19.4-beta.2", path = "./crates/api" } lemmy_api_crud = { version = "=0.19.4-beta.2", path = "./crates/api_crud" } lemmy_apub = { version = "=0.19.4-beta.2", path = "./crates/apub" } lemmy_utils = { version = "=0.19.4-beta.2", path = "./crates/utils", default-features = false } lemmy_db_schema = { version = "=0.19.4-beta.2", path = "./crates/db_schema" } lemmy_api_common = { version = "=0.19.4-beta.2", path = "./crates/api_common" } lemmy_routes = { version = "=0.19.4-beta.2", path = "./crates/routes" } lemmy_db_views = { version = "=0.19.4-beta.2", path = "./crates/db_views" } lemmy_db_views_actor = { version = "=0.19.4-beta.2", path = "./crates/db_views_actor" } lemmy_db_views_moderator = { version = "=0.19.4-beta.2", path = "./crates/db_views_moderator" } lemmy_federate = { version = "=0.19.4-beta.2", path = "./crates/federate" } activitypub_federation = { version = "0.5.4", default-features = false, features = [ "actix-web", ] } diesel = "2.1.4" diesel_migrations = "2.1.0" diesel-async = "0.4.1" serde = { version = "1.0.197", features = ["derive"] } serde_with = "3.7.0" actix-web = { version = "4.5.1", default-features = false, features = [ "macros", "rustls", "compress-brotli", "compress-gzip", "compress-zstd", "cookies", ] } tracing = "0.1.40" tracing-actix-web = { version = "0.7.10", default-features = false } tracing-error = "0.2.0" tracing-log = "0.2.0" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = { version = "2.5.0", features = ["serde"] } reqwest = { version = "0.11.26", features = ["json", "blocking", "gzip"] } reqwest-middleware = "0.2.4" reqwest-tracing = "0.4.7" clokwerk = "0.4.0" doku = { version = "0.21.1", features = ["url-2"] } bcrypt = "0.15.0" chrono = { version = "0.4.35", features = ["serde"], default-features = false } serde_json = { version = "1.0.114", features = ["preserve_order"] } base64 = "0.21.7" uuid = { version = "1.7.0", features = ["serde", "v4"] } async-trait = "0.1.77" captcha = "0.0.9" anyhow = { version = "1.0.81", features = [ "backtrace", ] } # backtrace is on by default on nightly, but not stable rust diesel_ltree = "0.3.1" typed-builder = "0.18.1" serial_test = "2.0.0" tokio = { version = "1.36.0", features = ["full"] } regex = "1.10.3" once_cell = "1.19.0" diesel-derive-newtype = "2.1.0" diesel-derive-enum = { version = "2.1.0", features = ["postgres"] } strum = "0.25.0" strum_macros = "0.25.3" itertools = "0.12.1" futures = "0.3.30" http = "0.2.12" rosetta-i18n = "0.1.3" opentelemetry = { version = "0.19.0", features = ["rt-tokio"] } tracing-opentelemetry = { version = "0.19.0" } ts-rs = { version = "7.1.1", features = [ "serde-compat", "chrono-impl", "no-serde-warnings", ] } rustls = { version = "0.21.10", features = ["dangerous_configuration"] } futures-util = "0.3.30" tokio-postgres = "0.7.10" tokio-postgres-rustls = "0.10.0" urlencoding = "2.1.3" enum-map = "2.7" moka = { version = "0.12.5", features = ["future"] } i-love-jesus = { version = "0.1.0" } clap = { version = "4.5.2", features = ["derive"] } pretty_assertions = "1.4.0" [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-error = { workspace = true } tracing-log = { 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 } tracing-opentelemetry = { workspace = true, optional = true } opentelemetry = { workspace = true, optional = true } console-subscriber = { version = "0.1.10", optional = true } opentelemetry-otlp = { version = "0.12.0", optional = true } pict-rs = { version = "0.5.9", optional = true } tokio.workspace = true actix-cors = "0.6.5" futures-util = { workspace = true } chrono = { workspace = true } prometheus = { version = "0.13.3", features = ["process"] } serial_test = { workspace = true } clap = { workspace = true } actix-web-prom = "0.7.0" [dev-dependencies] pretty_assertions = { workspace = true }