[package]
name = "mise"
version = "2025.1.2"
edition = "2021"
description = "The front-end to your dev env"
authors = ["Jeff Dickey (@jdx)"]
homepage = "https://mise.jdx.dev"
documentation = "https://mise.jdx.dev"
repository = "https://github.com/jdx/mise"
readme = "README.md"
license = "MIT"
keywords = ["mise"]
categories = ["command-line-utilities"]
include = [
  "/Cargo.lock",
  "/LICENSE",
  "/README.md",
  "/build.rs",
  "/completions/*",
  "/minisign.pub",
  "/registry.toml",
  "/settings.toml",
  "/zipsign.pub",
  "/src/**/*.rs",
  "/src/assets/**",
  "/src/plugins/core/assets/**",
  "/aqua-registry/pkgs/**/registry.yaml",
]
build = "build.rs"
rust-version = "1.82"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

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

#[[bench]]
#name = "config_bench"
#harness = false

[profile.serious]
inherits = "release"
lto = true

[profile.dev.package.backtrace]
opt-level = 3

[dependencies]
base64 = "0.22"
bzip2 = "0.5"
calm_io = "0.1"
chrono = { version = "0.4", default-features = false, features = [
  "std",
  "clock",
] }
ci_info = "0.14"
clap = { version = "4", features = ["env", "derive", "string"] }
clap_mangen = { version = "0.2", optional = true }
color-eyre = "0.6"
color-print = "0.3"
comfy-table = "7.1.3"
confique = { version = "0.3", default-features = false }
console = "0.15"
contracts = "0.6"
crossbeam-channel = "0.5"
demand = "1"
digest = "0.10.7"
dotenvy = "0.15"
duct = "0.13"
either = { version = "1", features = ["serde"] }
homedir = "0.3"
# expr-lang = { path = "../expr-lang" }
expr-lang = "0.2"
eyre = "0.6"
filetime = "0.2"
flate2 = "1"
fslock = "0.2.1"
git2 = "<1"
glob = "0.3"
globset = "0.4"
heck = "0.5"
humantime = "2"
indenter = "0.3"
indexmap = { version = "2", features = ["serde"] }
indicatif = { version = "0.17", features = ["default", "improved_unicode"] }
indoc = "2"
itertools = "0.14"
junction = "1"
log = "0.4"
minisign-verify = "0.2"
md-5 = "0.10"
num_cpus = "1"
number_prefix = "0.4"
once_cell = "1"
openssl = { version = "0.10", optional = true }
os-release = "0.1"
path-absolutize = "3"
petgraph = "0.7"
rand = "0.8"
rayon = "1"
regex = "1"
reqwest = { version = "0.12", default-features = false, features = [
  "json",
  "gzip",
  "zstd",
] }
rmp-serde = "1"
rops = { version = "0.1", default-features = false, features = [
  "aes-gcm",
  "sha2",
  "yaml",
  "json",
  "age",
] }
serde = "1"
serde_derive = "1"
serde_ignored = "0.1"
serde_json = "1"
serde_yaml = "0.9"
sha1 = "0.10"
sha2 = "0.10"
shell-escape = "0.1"
shell-words = "1"
signal-hook = "0.3"
siphasher = "1"
strum = { version = "0.26", features = ["derive"] }
sys-info = "0.9"
tabled = { version = "0.17", features = ["ansi"] }
taplo = "0.13"
tar = "0.4"
tempfile = "3"
tera = "1"
terminal_size = "0.4"
thiserror = "2"
tokio = { version = "1", features = ["io-std", "rt", "time"] }
toml = { version = "0.8", features = ["parse"] }
toml_edit = { version = "0.22", features = ["parse"] }
ubi = { version = "0.3", default-features = false }
url = "2"
# usage-lib = { path = "../usage/lib", features = ["clap", "docs"] }
usage-lib = { version = "1", features = ["clap", "docs"] }
versions = { version = "6", features = ["serde"] }
# vfox = { path = "../vfox.rs" }
vfox = { version = "0.3", default-features = false }
walkdir = "2"
which = "7"
xx = { version = "2", features = ["glob"] }
xz2 = "0.1"
zip = { version = "2", default-features = false, features = ["deflate"] }
zstd = "0.13"

[target.'cfg(unix)'.dependencies]
exec = "0.3"
nix = { version = "0.29", features = ["signal", "user"] }
self_update = { version = "0.42", default-features = false, features = [
  "archive-tar",
  "compression-flate2",
  "signatures",
] }

[target.'cfg(windows)'.dependencies]
self_update = { version = "0.42", default-features = false, features = [
  "archive-zip",
  "signatures",
] }
sevenz-rust = "0.6"

[build-dependencies]
built = { version = "0.7", features = ["chrono", "git2"] }
cfg_aliases = "0.2"
heck = "0.5"
toml = "0.8"
indexmap = "2"

[dev-dependencies]
ctor = "0.2"
insta = { version = "1", features = ["filters", "json"] }
pretty_assertions = "1"
test-log = "0.2"

[features]
default = ["native-tls", "vfox/vendored-lua"]
native-tls = ["reqwest/native-tls", "ubi/native-tls"]
rustls = ["reqwest/rustls-tls", "self_update/rustls", "ubi/rustls-tls"]
rustls-native-roots = [
  "reqwest/rustls-tls-native-roots",
  "self_update/rustls",
  "ubi/rustls-tls-native-roots",
]

[package.metadata.binstall]
bin-dir = "mise/bin/mise"
[package.metadata.binstall.overrides.aarch64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/mise-v{version}-macos-arm64{ archive-suffix }"
[package.metadata.binstall.overrides.x86_64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/mise-v{version}-macos-x64{ archive-suffix }"
[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/mise-v{version}-linux-arm64{ archive-suffix }"
[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/mise-v{version}-linux-x64{ archive-suffix }"
[package.metadata.binstall.overrides.armv7-unknown-linux-gnueabihf]
pkg-url = "{ repo }/releases/download/v{ version }/mise-v{version}-linux-armv7{ archive-suffix }"

[package.metadata.cargo-machete]
ignored = ["built", "openssl", "cfg_aliases"]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = [
  'cfg(coverage,coverage_nightly)',
] }

[lints.clippy]
borrowed_box = "allow"
