[[bin]]
name = "cfait"
path = "src/bin/tui.rs"
required-features = ["tui"]
[[bin]]
name = "gui"
path = "src/bin/gui.rs"
required-features = ["gui"]
[[bin]]
name = "uniffi-bindgen"
path = "src/bin/uniffi-bindgen.rs"
required-features = ["mobile"]
[dependencies.anyhow]
version = "1.0"
[dependencies.base64]
version = "0.22"
[dependencies.chrono]
features = ["serde"]
version = "0.4"
[dependencies.crossterm]
optional = true
version = "0.29"
[dependencies.digest_auth]
version = "0.3"
[dependencies.directories]
version = "6.0"
[dependencies.fs2]
version = "0.4"
[dependencies.futures]
version = "0.3"
[dependencies.http]
version = "1.4"
[dependencies.hyper-rustls]
features = ["native-tokio"]
version = "0.27"
[dependencies.hyper-util]
features = ["client", "client-legacy", "http1", "tokio"]
version = "0.1"
[dependencies.icalendar]
version = "0.17"
[dependencies.iced]
features = ["tokio", "svg", "advanced"]
optional = true
version = "0.14.0"
[dependencies.libdav]
version = "0.10"
[dependencies.notify-rust]
version = "4"
[dependencies.ratatui]
optional = true
version = "0.30"
[dependencies.rrule]
version = "0.14"
[dependencies.rustls]
default-features = false
features = ["std", "tls12"]
version = "0.23"
[dependencies.rustls-native-certs]
version = "0.8"
[dependencies.serde]
features = ["derive"]
version = "1.0"
[dependencies.serde_json]
version = "1.0"
[dependencies.tokio]
features = ["full"]
version = "1"
[dependencies.toml]
version = "0.9"
[dependencies.tower]
features = ["util"]
version = "0.5"
[dependencies.tower-http]
features = ["auth"]
version = "0.6"
[dependencies.tower-layer]
version = "0.3"
[dependencies.tower-service]
version = "0.3"
[dependencies.uniffi]
features = ["tokio", "build", "cli"]
optional = true
version = "0.30"
[dependencies.uniffi_bindgen]
optional = true
version = "0.30"
[dependencies.uuid]
features = ["v4"]
version = "1.19"
[dev-dependencies.mockito]
version = "1.7"
[dev-dependencies.tokio]
features = ["full"]
version = "1"
[dev-dependencies.uuid]
features = ["v4"]
version = "1.19"
[features]
default = ["tui"]
gui = ["dep:iced"]
mobile = ["dep:uniffi", "dep:uniffi_bindgen"]
tui = ["dep:ratatui", "dep:crossterm"]
[lib]
crate-type = ["lib", "cdylib"]
name = "cfait"
path = "src/lib.rs"
[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["command-line-utilities", "gui", "network-programming", "database"]
default-run = "cfait"
description = "A powerful, fast and elegant CalDAV task manager (TUI & GUI)"
edition = "2024"
exclude = [".github/*", ".forgejo/*", ".gitignore", "packaging/*", "about.hbs", "about.toml", "cliff.toml", "RUST_DEPENDENCIES.html"]
homepage = "https://codeberg.org/trougnouf/cfait"
keywords = ["caldav", "todo", "productivity", "tui", "gui"]
license = "GPL-3.0"
name = "cfait"
readme = "README.md"
repository = "https://codeberg.org/trougnouf/cfait"
version = "0.3.13"
[package.metadata.android]
version_code = 313
[package.metadata.deb]
assets = [["target/release/cfait", "usr/bin/", "755"], ["target/release/gui", "usr/bin/cfait-gui", "755"], ["assets/cfait.desktop", "usr/share/applications/", "644"], ["assets/cfait.svg", "usr/share/icons/hicolor/scalable/apps/cfait.svg", "644"]]
copyright = "2025, Benoit Brummer (Trougnouf)"
depends = "$auto"
extended-description = """
Cfait is a powerful yet simple tasks / TODO CalDAV client. (TUI and GUI)
"""
license-file = ["LICENSE", "4"]
maintainer = "Benoit Brummer (Trougnouf) <trougnouf@gmail.com>"
priority = "optional"
section = "utils"
[package.metadata.release]
pre-release-hook = ["python3", "scripts/prepare_release.py"]
[[package.metadata.release.pre-release-replacements]]
file = "packaging/arch/PKGBUILD"
replace = "pkgver={{version}}"
search = 'pkgver=[0-9\.]+'
[profile.release]
codegen-units = 1
lto = true
strip = true
[target.'cfg(target_os = "android")'.dependencies.android_logger]
version = "0.15"
[target.'cfg(target_os = "android")'.dependencies.log]
version = "0.4"
[target.'cfg(target_os = "android")'.dependencies.webpki-roots]
version = "1.0"
[[test]]
name = "alarm_logic"
path = "tests/alarm_logic.rs"
[[test]]
name = "alarm_tests"
path = "tests/alarm_tests.rs"
[[test]]
name = "digest_auth"
path = "tests/digest_auth.rs"
[[test]]
name = "escape_tests"
path = "tests/escape_tests.rs"
[[test]]
name = "ghost_tasks"
path = "tests/ghost_tasks.rs"
[[test]]
name = "journal_propagation"
path = "tests/journal_propagation.rs"
[[test]]
name = "local_data_loss"
path = "tests/local_data_loss.rs"
[[test]]
name = "local_safety"
path = "tests/local_safety.rs"
[[test]]
name = "locking"
path = "tests/locking.rs"
[[test]]
name = "logic_recurrence"
path = "tests/logic_recurrence.rs"
[[test]]
name = "logic_sorting"
path = "tests/logic_sorting.rs"
[[test]]
name = "parser_regressions"
path = "tests/parser_regressions.rs"
[[test]]
name = "parser_stress"
path = "tests/parser_stress.rs"
[[test]]
name = "readme_compliance"
path = "tests/readme_compliance.rs"
[[test]]
name = "search_operators"
path = "tests/search_operators.rs"
[[test]]
name = "search_tests"
path = "tests/search_tests.rs"
[[test]]
name = "smart_input_extensions"
path = "tests/smart_input_extensions.rs"
[[test]]
name = "smart_input_tests"
path = "tests/smart_input_tests.rs"
[[test]]
name = "store_behavior"
path = "tests/store_behavior.rs"
[[test]]
name = "sync_create_conflicts"
path = "tests/sync_create_conflicts.rs"
[[test]]
name = "sync_edge_cases"
path = "tests/sync_edge_cases.rs"
[[test]]
name = "sync_integration"
path = "tests/sync_integration.rs"
[[test]]
name = "sync_safety"
path = "tests/sync_safety.rs"
[[test]]
name = "tui_network_toggle"
path = "tests/tui_network_toggle.rs"