[workspace.package] version = "0.3.5" authors = ["藍+85CD"] edition = "2024" rust-version = "1.85" description = "Self-hosted & Fully-automated ActivityPub Bridge for Static Sites." documentation = "https://hatsu.cli.rs" readme = "README.md" homepage = "https://hatsu.cli.rs" repository = "https://github.com/importantimport/hatsu" license = "AGPL-3.0" publish = false [package] name = "hatsu" version.workspace = true edition.workspace = true publish.workspace = true readme.workspace = true license.workspace = true authors.workspace = true description.workspace = true documentation.workspace = true homepage.workspace = true repository.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [profile.dev] opt-level = 1 [profile.dev.package."*"] opt-level = 3 [profile.release] codegen-units = 1 lto = "fat" opt-level = "z" panic = "abort" strip = "symbols" [features] default = ["hatsu_tracing/pretty"] snmalloc = ["dep:snmalloc-rs"] # hatsu_tracing tracing_console = ["hatsu_tracing/console"] tracing_json = ["hatsu_tracing/json"] tracing_pretty = ["hatsu_tracing/pretty"] [workspace] members = [ ".", "crates/api", "crates/api_admin", "crates/api_apub", "crates/api_mastodon", "crates/apub", "crates/backend", "crates/cron", "crates/db_migration", "crates/db_schema", "crates/feed", "crates/frontend", "crates/nodeinfo", "crates/tracing", "crates/utils", "crates/well_known", ] [workspace.dependencies] hatsu_api = { path = "./crates/api" } hatsu_api_admin = { path = "./crates/api_admin" } hatsu_api_apub = { path = "./crates/api_apub" } hatsu_api_mastodon = { path = "./crates/api_mastodon" } hatsu_apub = { path = "./crates/apub" } hatsu_backend = { path = "./crates/backend" } hatsu_cron = { path = "./crates/cron" } hatsu_db_migration = { path = "./crates/db_migration" } hatsu_db_schema = { path = "./crates/db_schema" } hatsu_feed = { path = "./crates/feed" } hatsu_frontend = { path = "./crates/frontend" } hatsu_nodeinfo = { path = "./crates/nodeinfo" } hatsu_tracing = { path = "./crates/tracing" } hatsu_utils = { path = "./crates/utils" } hatsu_well_known = { path = "./crates/well_known" } activitypub_federation = { version = "0.6.6", default-features = false, features = [ "axum", ] } anyhow = "1.0" apalis = { version = "0.7", default-features = false, features = ["tracing"] } apalis-cron = "0.7" async-recursion = "1" async-trait = "0.1" # https://github.com/LemmyNet/activitypub-federation-rust/pull/135 axum = { version = "0.7", features = ["tokio", "macros"] } # axum-extra = { version = "0.8", features = ["query", "typed-routing"] } base64-simd = "0.8" chrono = "0.4" clap = "4.5" enum_delegate = "0.2" feed-rs = "2.3" futures = "0.3" markdown = "1.0.0-alpha" # https://github.com/LemmyNet/activitypub-federation-rust/pull/135 maud = { version = "=0.26", features = ["axum"] } # https://github.com/LemmyNet/activitypub-federation-rust/blob/a0e0c54b571a8c9f11e5646c4117fb7ff2cf1d70/Cargo.toml#L40-L44 reqwest = { version = "0.12", default-features = false, features = [ "json", "rustls-tls", ] } scraper = "0.23" sea-orm = { version = "2.0", features = [ # https://www.sea-ql.org/SeaORM/docs/install-and-config/database-and-async-runtime "runtime-tokio-rustls", "sqlx-postgres", "sqlx-sqlite", "macros", "with-chrono", "with-json", "with-uuid", ] } sea-orm-migration = { version = "2.0", features = [ # https://www.sea-ql.org/SeaORM/docs/install-and-config/database-and-async-runtime "runtime-tokio-rustls", "sqlx-postgres", "sqlx-sqlite", ] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tokio = { version = "1.0", features = ["full"] } tower-http = { version = "0.5", features = ["cors", "trace"] } tracing = { version = "0.1" } tracing-error = "0.2" url = { version = "2.4", features = ["serde"] } urlencoding = "2" # https://github.com/LemmyNet/activitypub-federation-rust/pull/135 utoipa = { version = "=5.3.0", features = ["axum_extras", "url", "uuid"] } utoipa-axum = "=0.1.3" utoipa-scalar = { version = "=0.2", features = ["axum"] } uuid = { version = "1.8", features = [ "v4", "v7", "fast-rng", "macro-diagnostics", ] } [dependencies] hatsu_api_apub = { workspace = true } hatsu_apub = { workspace = true } hatsu_backend = { workspace = true } hatsu_db_migration = { workspace = true } hatsu_db_schema = { workspace = true } hatsu_tracing = { workspace = true } hatsu_utils = { workspace = true } human-panic = "2" activitypub_federation = { workspace = true } clap = { workspace = true } dotenvy = "0.15" sea-orm = { workspace = true } tokio = { workspace = true } tracing = { workspace = true } # optional snmalloc-rs = { version = "0.3", default-features = false, features = [ "build_cc", ], optional = true } anstyle = "1.0.8"