[workspace] members = ["crates/*"] [workspace.package] version = "0.1.0" edition = "2024" description = "A CalDAV server" repository = "https://github.com/lennart-k/rustical" [package] name = "rustical" version.workspace = true edition.workspace = true description.workspace = true repository.workspace = true resolver = "2" publish = false [features] debug = ["opentelemetry"] opentelemetry = [ "dep:opentelemetry", "dep:opentelemetry-otlp", "dep:opentelemetry_sdk", "dep:opentelemetry-semantic-conventions", "dep:tracing-opentelemetry", ] [profile.dev] debug = 0 [workspace.dependencies] uuid = { version = "1.11", features = ["v4", "fast-rng"] } async-trait = "0.1" actix-web = "4.11" tracing = { version = "0.1", features = ["async-await"] } tracing-actix-web = "0.7" actix-session = { version = "0.10", features = ["cookie-session"] } actix-web-httpauth = "0.8" anyhow = { version = "1.0", features = ["backtrace"] } serde = { version = "1.0", features = ["serde_derive", "derive", "rc"] } futures-util = "0.3" password-auth = { version = "1.0", features = ["argon2", "pbkdf2"] } pbkdf2 = { version = "0.12", features = ["simple"] } rand_core = { version = "0.9", features = ["std"] } chrono = { version = "0.4", features = ["serde"] } regex = "1.10" lazy_static = "1.5" rstest = "0.25" rstest_reuse = "0.7" sha2 = "0.10" tokio = { version = "1", features = [ "net", "tracing", "macros", "rt-multi-thread", "full", ] } url = "2.5" base64 = "0.22" thiserror = "2.0" quick-xml = { version = "0.37" } rust-embed = "8.5" futures-core = "0.3.31" hex = { version = "0.4.3", features = ["serde"] } mime_guess = "2.0.5" itertools = "0.14" log = "0.4" derive_more = { version = "2.0", features = [ "from", "try_into", "into", "deref", "constructor", "display", ] } askama = { version = "0.14", features = ["serde_json"] } askama_web = { version = "0.14.0", features = ["actix-web-4"] } sqlx = { version = "0.8", default-features = false, features = [ "sqlx-sqlite", "uuid", "chrono", "sqlite", "runtime-tokio", "macros", "migrate", "json", ] } http = "0.2" # This version is used by actix-web headers = "0.4" strum = "0.27" strum_macros = "0.27" serde_json = { version = "1.0", features = ["raw_value"] } sqlx-sqlite = { version = "0.8", features = ["bundled"] } ical = { version = "0.11", features = ["generator", "serde"] } toml = "0.8" rustical_dav = { path = "./crates/dav/", features = ["actix"] } rustical_dav_push = { path = "./crates/dav_push/" } rustical_store = { path = "./crates/store/" } rustical_store_sqlite = { path = "./crates/store_sqlite/" } rustical_caldav = { path = "./crates/caldav/" } rustical_carddav = { path = "./crates/carddav/" } rustical_frontend = { path = "./crates/frontend/" } rustical_xml = { path = "./crates/xml/" } rustical_oidc = { path = "./crates/oidc/" } rustical_ical = { path = "./crates/ical/", features = ["actix"] } chrono-tz = "0.10" chrono-humanize = "0.2" rand = "0.8" rrule = "0.14" argon2 = "0.5" rpassword = "7.3" password-hash = { version = "0.5" } syn = { version = "2.0", features = ["full"] } quote = "1.0" proc-macro2 = "1.0" heck = "0.5" darling = "0.20" reqwest = { version = "0.12", features = [ "rustls-tls", "charset", "http2", ], default-features = false } openidconnect = "4.0" clap = { version = "4.5", features = ["derive", "env"] } [dependencies] rustical_store = { workspace = true } rustical_store_sqlite = { workspace = true } rustical_caldav = { workspace = true } rustical_carddav = { workspace = true } rustical_frontend = { workspace = true } actix-web = { workspace = true } toml = { workspace = true } serde = { workspace = true } tokio = { workspace = true } tracing = { workspace = true } anyhow = { workspace = true } clap.workspace = true sqlx = { workspace = true } async-trait = { workspace = true } tracing-actix-web = { workspace = true } uuid.workspace = true opentelemetry = { version = "0.29", optional = true } opentelemetry-otlp = { version = "0.29", optional = true, features = [ "grpc-tonic", ] } opentelemetry_sdk = { version = "0.29", features = [ "rt-tokio", ], optional = true } opentelemetry-semantic-conventions = { version = "0.29", optional = true } tracing-opentelemetry = { version = "0.30", optional = true } tracing-subscriber = { version = "0.3", features = [ "env-filter", "fmt", "registry", ] } figment = { version = "0.10", features = ["env", "toml"] } rand.workspace = true rpassword.workspace = true argon2.workspace = true pbkdf2.workspace = true password-hash.workspace = true reqwest.workspace = true rustical_dav.workspace = true rustical_dav_push.workspace = true rustical_oidc.workspace = true quick-xml.workspace = true