[package]
name = "kikiutils"
version = "0.5.9"

authors = ["kiki-kanri"]
categories = []
description = "A utility library to simplify Rust development."
edition = "2021"
homepage = "https://github.com/kikiutils/rust"
include = [
  "Cargo.toml",
  "README.md",
  "src/**/*",
]

keywords = ["utils"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/kikiutils/rust"

# Dependencies
[dependencies]
anyhow = { version = "1.0.100", optional = true }
dashmap = { version = "6.1.0", optional = true }
futures = { version = "0.3.31", optional = true }
rustc-hash = "2.1.1"
time = { version = "0.3.44", features = ["formatting", "local-offset", "macros"], optional = true }
tokio = { version = "1.48.0", features = ["macros", "rt", "signal", "sync"], optional = true }
tokio-util = { version = "0.7.17", optional = true}
tracing-subscriber = { version = "0.3.20", features = ["time"], optional = true }

[dev-dependencies]
rand = "0.9.2"
tokio = { version = "1.48.0", features = ["full"] }

# Features
[features]
## Define features
anyhow-ext = ["dep:anyhow"]
signal = [
  "dep:anyhow",
  "dep:tokio",
]

task = [
  "dep:anyhow",
  "dep:dashmap",
  "dep:futures",
  "dep:tokio",
  "dep:tokio-util",
]

tracing = [
  "dep:anyhow",
  "dep:time",
  "dep:tracing-subscriber",
]

## Default and alias
default = []
all = [
  "anyhow-ext",
  "signal",
  "task",
  "tracing",
]

full = ["all"]
