Files
rustical/Cargo.toml
2025-12-10 14:43:06 +01:00

206 lines
5.3 KiB
TOML

[workspace]
members = ["crates/*"]
[workspace.package]
version = "0.11.1"
rust-version = "1.91"
edition = "2024"
description = "A CalDAV server"
documentation = "https://lennart-k.github.io/rustical/"
repository = "https://github.com/lennart-k/rustical"
license = "AGPL-3.0-or-later"
[package]
name = "rustical"
version.workspace = true
rust-version.workspace = true
edition.workspace = true
description.workspace = true
repository.workspace = true
license.workspace = true
resolver = "2"
publish = true
[features]
debug = ["opentelemetry"]
frontend-dev = ["rustical_frontend/dev"]
opentelemetry = [
"dep:opentelemetry",
"dep:opentelemetry-otlp",
"dep:opentelemetry_sdk",
"dep:opentelemetry-semantic-conventions",
"dep:tracing-opentelemetry",
]
[profile.dev]
debug = 0
[workspace.dependencies]
rustical_dav = { path = "./crates/dav/" }
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/" }
matchit = "0.9"
uuid = { version = "1.11", features = ["v4", "fast-rng"] }
async-trait = "0.1"
axum = "0.8"
tracing = { version = "0.1", features = ["async-await"] }
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"
rstest = "0.26"
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.38" }
rust-embed = "8.5"
tower-sessions = "0.14"
futures-core = "0.3.31"
hex = { version = "0.4.3", features = ["serde"] }
mime_guess = "2.0"
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 = ["axum-0.8"] }
sqlx = { version = "0.8", default-features = false, features = [
"sqlx-sqlite",
"uuid",
"chrono",
"sqlite",
"runtime-tokio",
"macros",
"migrate",
"json",
] }
http = "1.3"
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 = { git = "https://github.com/lennart-k/ical-rs", features = [
"generator",
"serde",
"chrono-tz",
] }
toml = "0.9"
tower = "0.5"
tower-http = { version = "0.6", features = [
"trace",
"normalize-path",
"catch-panic",
] }
percent-encoding = "2.3"
chrono-tz = "0.10"
chrono-humanize = "0.2"
rand = "0.9"
axum-extra = { version = "0.12", features = ["typed-header"] }
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.23"
reqwest = { version = "0.12", features = [
"rustls-tls",
"charset",
"http2",
], default-features = false }
openidconnect = "4.0"
clap = { version = "4.5", features = ["derive", "env"] }
matchit-serde = { git = "https://github.com/lennart-k/matchit-serde", rev = "e18e65d7" }
vtimezones-rs = "0.2"
ece = { version = "2.3", default-features = false, features = [
"backend-openssl",
] }
openssl = { version = "0.10", features = ["vendored"] }
async-std = { version = "1.13", features = ["attributes"] }
similar-asserts = "1.7"
insta = "1.44"
[dev-dependencies]
rstest.workspace = true
rustical_store_sqlite = { workspace = true, features = ["test"] }
insta.workspace = true
[dependencies]
rustical_store.workspace = true
rustical_store_sqlite.workspace = true
rustical_caldav.workspace = true
rustical_carddav.workspace = true
rustical_frontend.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
uuid.workspace = true
axum.workspace = true
opentelemetry = { version = "0.31", optional = true }
opentelemetry-otlp = { version = "0.31", optional = true, features = [
"grpc-tonic",
] }
opentelemetry_sdk = { version = "0.31", features = [
"rt-tokio",
], optional = true }
opentelemetry-semantic-conventions = { version = "0.31", optional = true }
tracing-opentelemetry = { version = "0.32", optional = true }
tracing-subscriber = { version = "0.3", features = [
"env-filter",
"fmt",
"registry",
] }
figment = { version = "0.10", features = ["env", "toml"] }
tower-sessions.workspace = true
rpassword.workspace = true
tower.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
tower-http.workspace = true
axum-extra.workspace = true
headers.workspace = true
http.workspace = true