# spell-checker:ignore (features) bigdecimal zerocopy extendedbigdecimal tzdb zoneinfo logind

[package]
name = "uucore"
description = "uutils ~ 'core' uutils code library (cross-platform)"
repository = "https://github.com/uutils/coreutils/tree/main/src/uucore"
authors.workspace = true
categories.workspace = true
edition.workspace = true
homepage.workspace = true
keywords.workspace = true
license.workspace = true
version.workspace = true

[package.metadata.docs.rs]
all-features = true

[lib]
path = "src/lib/lib.rs"

[dependencies]
bstr = { workspace = true }
chrono = { workspace = true, optional = true }
clap = { workspace = true }
uucore_procs = { workspace = true }
number_prefix = { workspace = true }
dns-lookup = { workspace = true, optional = true }
dunce = { version = "1.0.4", optional = true }
wild = "2.2.1"
glob = { workspace = true, optional = true }
itertools = { workspace = true, optional = true }
jiff = { workspace = true, optional = true, features = [
  "tzdb-bundle-platform",
  "tzdb-zoneinfo",
  "tzdb-concatenated",
] }
time = { workspace = true, optional = true, features = [
  "formatting",
  "local-offset",
  "macros",
] }
# * "problem" dependencies (pinned)
data-encoding = { version = "2.6", optional = true }
data-encoding-macro = { version = "0.1.15", optional = true }
z85 = { version = "3.0.5", optional = true }
base64-simd = { version = "0.8", optional = true }
libc = { workspace = true, optional = true }
os_display = "0.1.3"

digest = { workspace = true, optional = true }
hex = { workspace = true, optional = true }
memchr = { workspace = true, optional = true }
md-5 = { workspace = true, optional = true }
sha1 = { workspace = true, optional = true }
sha2 = { workspace = true, optional = true }
sha3 = { workspace = true, optional = true }
blake2b_simd = { workspace = true, optional = true }
blake3 = { workspace = true, optional = true }
sm3 = { workspace = true, optional = true }
crc32fast = { workspace = true, optional = true }
bigdecimal = { workspace = true, optional = true }
num-traits = { workspace = true, optional = true }
selinux = { workspace = true, optional = true }

# icu stuff
icu_collator = { workspace = true, optional = true, features = [
  "compiled_data",
] }
icu_decimal = { workspace = true, optional = true, features = [
  "compiled_data",
] }
icu_locale = { workspace = true, optional = true, features = ["compiled_data"] }
icu_provider = { workspace = true, optional = true }

# Fluent dependencies (always available for localization)
fluent = { workspace = true }
fluent-syntax = { workspace = true }
unic-langid = { workspace = true }
fluent-bundle = { workspace = true }
thiserror = { workspace = true }
[target.'cfg(unix)'.dependencies]
walkdir = { workspace = true, optional = true }
nix = { workspace = true, features = ["fs", "uio", "zerocopy", "signal"] }
xattr = { workspace = true, optional = true }

[dev-dependencies]
tempfile = { workspace = true }

[target.'cfg(target_os = "windows")'.dependencies]
winapi-util = { workspace = true, optional = true }
windows-sys = { workspace = true, optional = true, default-features = false, features = [
  "Wdk_System_SystemInformation",
  "Win32_Storage_FileSystem",
  "Win32_Foundation",
  "Win32_System_RemoteDesktop",
  "Win32_System_SystemInformation",
  "Win32_System_WindowsProgramming",
] }

[target.'cfg(target_os = "openbsd")'.dependencies]
utmp-classic = { workspace = true, optional = true }

[features]
default = []
# * non-default features
backup-control = []
colors = []
checksum = ["data-encoding", "quoting-style", "sum"]
encoding = ["data-encoding", "data-encoding-macro", "z85", "base64-simd"]
entries = ["libc"]
extendedbigdecimal = ["bigdecimal", "num-traits"]
fast-inc = []
fs = ["dunce", "libc", "winapi-util", "windows-sys"]
fsext = ["libc", "windows-sys"]
fsxattr = ["xattr"]
lines = []
feat_systemd_logind = ["utmpx", "libc"]
format = [
  "bigdecimal",
  "extendedbigdecimal",
  "itertools",
  "parser",
  "num-traits",
  "quoting-style",
]
i18n-all = ["i18n-collator", "i18n-decimal"]
i18n-common = ["icu_locale"]
i18n-collator = ["i18n-common", "icu_collator"]
i18n-decimal = ["i18n-common", "icu_decimal", "icu_provider"]
mode = ["libc"]
perms = ["entries", "libc", "walkdir"]
buf-copy = []
parser = ["extendedbigdecimal", "glob", "num-traits"]
pipes = []
process = ["libc"]
proc-info = ["tty", "walkdir"]
quoting-style = ["i18n-common"]
ranges = []
ringbuffer = []
selinux = ["dep:selinux"]
signals = []
sum = [
  "digest",
  "hex",
  "memchr",
  "md-5",
  "sha1",
  "sha2",
  "sha3",
  "blake2b_simd",
  "blake3",
  "sm3",
  "crc32fast",
]
update-control = ["parser"]
utf8 = []
utmpx = ["time", "time/macros", "libc", "dns-lookup"]
version-cmp = []
wide = []
tty = []
time = ["jiff"]
uptime = ["chrono", "libc", "windows-sys", "utmpx", "utmp-classic"]
