[package]
name = "starship"
version = "1.20.1"
authors = ["Starship Contributors"]
build = "build.rs"
categories = ["command-line-utilities"]
documentation = "https://starship.rs/guide/"
edition = "2021"
homepage = "https://starship.rs"
# Keep `/` in front of `README.md` to exclude localized readmes
include = [
  "src/**/*",
  "/starship.exe.manifest",
  "media/icon.ico",
  "build.rs",
  "LICENSE",
  "/README.md",
  "docs/public/presets/toml/",
  ".github/config-schema.json",
]
keywords = ["prompt", "shell", "bash", "fish", "zsh"]
license = "ISC"
readme = "README.md"
repository = "https://github.com/starship/starship"
# Note: MSRV is only intended as a hint, and only the latest version is officially supported in starship.
rust-version = "1.74"
description = """
The minimal, blazing-fast, and infinitely customizable prompt for any shell! ☄🌌️
"""

[features]
default = ["battery", "notify", "gix-max-perf"]
battery = ["starship-battery"]
config-schema = ["schemars"]
notify = ["notify-rust"]

# Enables most of the `max-performance` features of the `gix` module for better performance.
# This can be more difficult to build in some conditions and requires cmake.
gix-max-perf = ["gix-features/zlib-ng", "gix/fast-sha1"]
# Slower than `git-repository-max-perf`, but better than the default.
# Unlike `git-repository-max-perf` this does not require cmake and allows dynamic zlib linking.
gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"]

[dependencies]
chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "wasmbind"] }
clap = { version = "4.5.15", features = ["derive", "cargo", "unicode"] }
clap_complete = "4.5.14"
dirs = "5.0.1"
dunce = "1.0.5"
gethostname = "0.5.0"
# default feature restriction addresses https://github.com/starship/starship/issues/4251
gix = { version = "0.64.0", default-features = false, features = ["max-performance-safe", "revision"] }
gix-features = { version = "0.38.2", optional = true }
indexmap = { version = "2.3.0", features = ["serde"] }
log = { version = "0.4.22", features = ["std"] }
# notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix
# see: https://github.com/NixOS/nixpkgs/issues/160876
notify-rust = { version = "4.11.1", optional = true }
nu-ansi-term = "0.50.1"
once_cell = "1.19.0"
open = "5.3.0"
# update os module config and tests when upgrading os_info
os_info = "3.8.2"
path-slash = "0.2.1"
pest = "2.7.11"
pest_derive = "2.7.11"
quick-xml = "0.36.1"
rand = "0.8.5"
rayon = "1.10.0"
regex = { version = "1.10.6", default-features = false, features = ["perf", "std", "unicode-perl"] }
rust-ini = "0.21.1"
semver = "1.0.23"
serde = { version = "1.0.206", features = ["derive"] }
serde_json = "1.0.124"
sha1 = "0.10.6"
shadow-rs = { version = "0.31.1", default-features = false }
# battery is optional (on by default) because the crate doesn't currently build for Termux
# see: https://github.com/svartalf/rust-battery/issues/33
starship-battery = { version = "0.9.1", optional = true }
strsim = "0.11.1"
systemstat = "=0.2.3"
terminal_size = "0.3.0"
toml = { version = "0.8.19", features = ["preserve_order"] }
toml_edit = "0.22.20"
unicode-segmentation = "1.11.0"
unicode-width = "0.1.13"
urlencoding = "2.1.3"
versions = "6.3.2"
which = "6.0.2"
yaml-rust2 = "0.8.1"

process_control = { version = "4.2.2", features = ["crossbeam-channel"] }

guess_host_triple = "0.1.3"
home = "0.5.9"
shell-words = "1.1.0"

[dependencies.schemars]
version = "0.8.21"
optional = true
features = ["preserve_order", "indexmap2"]

[target.'cfg(windows)'.dependencies]
deelevate = "0.2.0"

[target.'cfg(windows)'.dependencies.windows]
version = "0.58.0"
features = [
  "Win32_Foundation",
  "Win32_UI_Shell",
  "Win32_Security",
  "Win32_System_Threading",
  "Win32_Storage_FileSystem",
]

[target.'cfg(not(windows))'.dependencies]
nix = { version = "0.29.0", default-features = false, features = ["feature", "fs", "user"] }

[build-dependencies]
shadow-rs = { version = "0.31.1", default-features = false }
dunce = "1.0.5"

[target.'cfg(windows)'.build-dependencies]
winres = "0.1.12"

[dev-dependencies]
mockall = "0.13.0"
tempfile = "3.12.0"

[profile.release]
codegen-units = 1
lto = true
strip = true

[[bin]]
name = "starship"
path = "src/main.rs"
