[package]

name = "lux-lib"
version = "0.4.1"
description = "Library for the lux package manager for Lua"
authors = ["vhyrro <vhyrro@gmail.com>", "mrcjkb <marc@jakobi.dev>"]
homepage = "https://github.com/nvim-neorocks/lux"
license = "MIT"
readme = "../README.md"
keywords = ["lua", "luarocks", "neovim", "packagemanager", "build"]
categories = ["development-tools"]
exclude = ["tests/**", "resources/test/**"]
edition = "2021"

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

[dependencies]
bytes = "1.10.0"
cc = { version = "1.2.0", features = ["parallel"] }
directories = "6.0.0"
git-url-parse = "0.4.4"
git2 = "0.20.0"
html-escape = "0.2.13"
httpdate = "1.0.3"
itertools = "0.14.0"
mlua = { version = "0.10.1", features = [
  "serialize",
  "macros",
  "error-send",
  "async",
] }
pathdiff = "0.2.1"
reqwest = { version = "0.12.0", features = ["json", "multipart"] }
semver = "1.0.22"
serde = { version = "1.0.197", features = ["derive"] }
serde_json = { version = "1.0.114", features = ["preserve_order"] }
serde-enum-str = "0.4.0"
ssri = "9.2.0"
strum = { version = "0.27" }
strum_macros = "0.27"
tokio = { version = "1.45.0", features = ["full"] }
tempdir = "0.3.7"
vfs = "0.12.0"
walkdir = "2.4.0"
zip = "2.6.0"
tar = "0.4.42"
flate2 = "1.1.0"
which = "7.0.0"
lets_find_up = "0.0.4"
remove_dir_all = "1.0.0"
openssl = "0.10.70"
lua-src = "547.0.0"
luajit-src = "210.5.12"
target-lexicon = "0.13.0"
clap = { version = "4.5.3", features = ["derive"], optional = true }
infer = "0.19.0"
indicatif = "0.17.8"
sha2 = "0.10.8"
hex = { version = "0.4.3" }
fs_extra = "1.3.0"
thiserror = "2.0.0"
futures = "0.3.31"
async-recursion = "1.1.1"
shell-words = "1.1.0"
shlex = "1.3.0"
pkg-config = "0.3.31"
url = "2.5.4"
bon = { version = "3.6.0", features = ["implied-bounds"] }
clean-path = "0.2.1"
diffy = "0.4.0"
toml = "0.8.19"
md5 = "0.7.0"
toml_edit = "0.22.22"
nix-nar = "0.3.0"
tree-sitter-loader = "0.25.2"
tree-sitter-generate = "0.25.1"
tree-sitter = "0.25.2"
tree-sitter-config = "0.25.2"
lux-workspace-hack = { version = "0.1", path = "../lux-workspace-hack" }
ignore = "0.4.23"
nonempty = { version = "0.11.0", features = ["serialize"] }
is_executable = "1.0.4"
path-slash = "0.2.1"
chumsky = "0.10.0"

[target.'cfg(not(target_env = "msvc"))'.dependencies]
gpgme = "0.11.0"

[dev-dependencies]
httptest = { version = "0.16.1" }
serial_test = { version = "3.2.0" }
proptest = "1.6.0"
dir-diff = "0.3.3"
insta = { version = "1.43.0", features = ["redactions", "yaml", "json"] }
assert_fs = "1.1.2"
predicates = "3.1.2"

[features]
default = ["luajit"]
clap = ["dep:clap"]
lua = []
lua51 = ["mlua/lua51"]
lua52 = ["mlua/lua52"]
lua53 = ["mlua/lua53"]
lua54 = ["mlua/lua54"]
luajit = ["mlua/luajit"]
vendored-lua = ["mlua/vendored"]
