[package] name = "skyshift" version = "0.1.0" edition = "2024" # 1.89 is the first Rust with `std::fs::File::try_lock` (used to stop two copies # of skyshift from writing the same data file). rust-version = "1.89" description = "Track your work shifts from the terminal, including shifts that run past midnight." publish = false [dependencies] # Terminal user interface. The crossterm backend works on Windows, Linux and macOS. # Default features are off to skip widgets we don't use (the calendar widget # would pull in a second date/time library). ratatui = { version = "0.30", default-features = false, features = ["crossterm_0_29", "layout-cache"] } # Dates, times and time zones. Time zones are plain runtime values, so the # "timezone override" setting stays simple, and daylight saving time is handled. jiff = { version = "0.2", features = ["serde"] } # Reading and writing files: settings and data in TOML, exports in JSON. serde = { version = "1", features = ["derive"] } toml = "1" serde_json = "1" # The standard per-OS folders (%APPDATA% on Windows, ~/.config and # ~/.local/share on Linux). directories = "6" # System clipboard. Text only (no default features = no image support). # On Linux this covers both X11 and Wayland without any system libraries. arboard = { version = "3", default-features = false, features = ["wayland-data-control"] } # Error type with context, used where many different errors meet (startup, files). anyhow = "1" [lints.rust] unsafe_code = "forbid" [lints.clippy] all = { level = "warn", priority = -1 } [profile.release] # Smaller, faster binary. `strip` removes debug symbols from the executable. lto = "thin" codegen-units = 1 strip = true