[package]
authors = ["The Nushell Project Developers"]
build = "scripts/build.rs"
default-run = "nu"
description = "A new type of shell"
documentation = "https://www.nushell.sh/book/"
edition = "2024"
exclude = ["images"]
homepage = "https://www.nushell.sh"
license = "MIT"
name = "nu"
repository = "https://github.com/nushell/nushell"
rust-version = "1.90.0"
version = "0.110.0"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/{ version }/{ name }-{ version }-{ target }.{ archive-format }"
pkg-fmt = "tgz"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
[package.metadata.winresource]
LegalCopyright = "Copyright © 2019-2025 The Nushell Project Developers"
FileDescription = "A new type of shell"
FileVersion = "0.108.1"
ProductVersion = "0.108.1"
ProductName = "Nushell"
[workspace]
members = [
"crates/nu_plugin_custom_values",
"crates/nu_plugin_example",
"crates/nu_plugin_formats",
"crates/nu_plugin_gstat",
"crates/nu_plugin_inc",
"crates/nu_plugin_polars",
"crates/nu_plugin_query",
"crates/nu_plugin_stress_internals",
"crates/nu-cli",
"crates/nu-cmd-base",
"crates/nu-cmd-extra",
"crates/nu-cmd-lang",
"crates/nu-cmd-plugin",
"crates/nu-color-config",
"crates/nu-command",
"crates/nu-derive-value",
"crates/nu-engine",
"crates/nu-experimental",
"crates/nu-explore",
"crates/nu-json",
"crates/nu-lsp",
"crates/nu-parser",
"crates/nu-plugin-core",
"crates/nu-plugin-engine",
"crates/nu-plugin-protocol",
"crates/nu-plugin-test-support",
"crates/nu-plugin",
"crates/nu-pretty-hex",
"crates/nu-protocol",
"crates/nu-std",
"crates/nu-system",
"crates/nu-table",
"crates/nu-term-grid",
"crates/nu-test-support",
"crates/nu-utils",
"crates/nuon",
"crates/nu-mcp",
]
[workspace.dependencies]
alphanumeric-sort = "1.5"
ansi-str = "0.9"
anyhow = "1.0.82"
base64 = "0.22.1"
bracoxide = "0.1.8"
brotli = "8.0"
byteorder = "1.5"
bytes = "1"
bytesize = "2.3.1"
byteyarn = "0.5"
calamine = "0.32"
chardetng = "0.1.17"
chrono = { default-features = false, version = "0.4.34" }
chrono-humanize = "0.2.3"
chrono-tz = "0.10"
crossbeam-channel = "0.5.8"
crossterm = "0.29.0"
csv = "1.4"
ctrlc = "3.4"
devicons = "0.6.12"
dialoguer = { default-features = false, version = "0.12" }
digest = { default-features = false, version = "0.10" }
dirs = "6.0"
dirs-sys = "0.5"
dns-lookup = "3.0.1"
dtparse = "2.0"
encoding_rs = "0.8"
fancy-regex = "0.17"
filesize = "0.2"
filetime = "0.2"
fuzzy-matcher = { version = "^0.3.7" }
heck = "0.5.0"
http = "1.4.0"
human-date-parser = "0.3.0"
indexmap = "2.11"
indicatif = "0.18"
interprocess = "2.2.0"
is_executable = "1.0"
itertools = "0.14"
lean_string = { version = "0.5", features = ["serde"] }
libc = "0.2"
libproc = "0.14"
log = "0.4"
lru = "0.16"
lscolors = { version = "0.20", default-features = false }
lsp-server = "0.7.8"
lsp-types = { version = "0.97.0", features = ["proposed"] }
lsp-textdocument = "0.4.2"
mach2 = "0.6"
md5 = { version = "0.10", package = "md-5" }
miette = "7.6"
mime = "0.3.17"
mime_guess = "2.0"
mockito = { version = "1.7", default-features = false }
multipart-rs = "0.1.13"
native-tls = "0.2"
nix = { version = "0.30", default-features = false }
notify-debouncer-full = { version = "0.3", default-features = false }
nu-ansi-term = "0.50.3"
nucleo-matcher = "0.3"
num-format = "0.4"
num-traits = "0.2"
oem_cp = "2.1.0"
omnipath = "0.1"
open = "5.3"
os_pipe = { version = "1.2", features = ["io_safety"] }
pathdiff = "0.2"
percent-encoding = "2"
pretty_assertions = "1.4"
print-positions = "0.6"
proc-macro-error2 = "2.0"
proc-macro2 = "1.0"
procfs = "0.18.0"
pwd = "1.3"
quick-xml = "0.38.3"
quickcheck = "1.0"
quickcheck_macros = "1.1"
quote = "1.0"
rand = "0.9"
getrandom = "0.2"
rand_chacha = "0.9"
ratatui = "0.29"
rayon = "1.11"
reedline = "0.45.0"
rmp = "0.8.15"
rmp-serde = "1.3.1"
roxmltree = "0.20"
rstest = { version = "0.23", default-features = false }
rstest_reuse = "0.7"
rusqlite = "0.37"
rustls = { version = "=0.23.28", default-features = false, features = ["std", "tls12"] }
rustls-native-certs = "0.8"
scopeguard = { version = "1.2.0" }
serde = { version = "1.0" }
serde_json = "1.0.97"
serde_urlencoded = "0.7.1"
serde_yaml = "0.9.33"
sha2 = "0.10"
strip-ansi-escapes = "0.2.1"
strum = "0.27"
strum_macros = "0.27"
syn = "2.0"
sysinfo = "0.37.2"
tabled = { version = "0.20", default-features = false }
tempfile = "3.24"
thiserror = "2.0.12"
titlecase = "3.6"
toml = "0.9"
trash = "5.2"
update-informer = { version = "1.3.0", default-features = false, features = ["github", "ureq"] }
umask = "2.1"
unicode-segmentation = "1.12"
unicode-width = "0.2"
ureq = { version = "=3.0.12", default-features = false, features = ["socks-proxy"] }
url = "2.2"
uu_cp = "0.5.0"
uu_mkdir = "0.5.0"
uu_mktemp = "0.5.0"
uu_mv = "0.5.0"
uu_touch = "0.5.0"
uu_whoami = "0.5.0"
uu_uname = "0.5.0"
uucore = "0.5.0"
uuid = "1.19.0"
v_htmlescape = "0.15.0"
wax = "0.6"
web-time = "1.1.0"
which = "8.0.0"
win_uds = "=0.2.1"
windows = "0.62"
windows-sys = "0.61"
winreg = "0.55"
memchr = "2.7.4"
webpki-roots = "1.0"
[workspace.lints.clippy]
unchecked_duration_subtraction = "warn"
used_underscore_binding = "warn"
result_large_err = "allow"
[lints]
workspace = true
[dependencies]
nu-cli = { path = "./crates/nu-cli", version = "0.110.0" }
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.110.0" }
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.110.0" }
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.110.0" }
nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.110.0", optional = true }
nu-command = { path = "./crates/nu-command", version = "0.110.0", default-features = false, features = ["os"] }
nu-engine = { path = "./crates/nu-engine", version = "0.110.0" }
nu-experimental = { path = "./crates/nu-experimental", version = "0.110.0" }
nu-explore = { path = "./crates/nu-explore", version = "0.110.0" }
nu-lsp = { path = "./crates/nu-lsp/", version = "0.110.0" }
nu-parser = { path = "./crates/nu-parser", version = "0.110.0" }
nu-path = { path = "./crates/nu-path", version = "0.110.0" }
nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.110.0" }
nu-protocol = { path = "./crates/nu-protocol", version = "0.110.0" }
nu-std = { path = "./crates/nu-std", version = "0.110.0" }
nu-system = { path = "./crates/nu-system", version = "0.110.0" }
nu-utils = { path = "./crates/nu-utils", version = "0.110.0" }
nu-mcp = { path = "./crates/nu-mcp", version = "0.110.0", optional = true }
reedline = { workspace = true, features = ["bashisms"] }
crossterm = { workspace = true }
ctrlc = { workspace = true }
dirs = { workspace = true }
log = { workspace = true }
miette = { workspace = true, features = ["fancy-no-backtrace", "fancy"] }
multipart-rs = { workspace = true }
serde_json = { workspace = true }
simplelog = "0.12"
time = "0.3"
[target.'cfg(not(target_os = "windows"))'.dependencies]
openssl = { version = "0.10", features = ["vendored"], optional = true }
[target.'cfg(windows)'.build-dependencies]
winresource = "0.1"
[target.'cfg(target_family = "unix")'.dependencies]
nix = { workspace = true, default-features = false, features = [
"signal",
"process",
"fs",
"term",
] }
[dev-dependencies]
nu-test-support = { path = "./crates/nu-test-support", version = "0.110.0" }
nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.110.0" }
nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.110.0" }
assert_cmd = "2.0"
dirs = { workspace = true }
tango-bench = "0.6"
pretty_assertions = { workspace = true }
fancy-regex = { workspace = true }
rstest = { workspace = true, default-features = false }
serial_test = "3.2"
tempfile = { workspace = true }
[features]
full = [
"network",
"plugin",
"rustls-tls",
"sqlite",
"system-clipboard",
"trash-support",
"mcp",
]
plugin = [
"dep:nu-cmd-plugin",
"dep:nu-plugin-engine",
"nu-cli/plugin",
"nu-cmd-lang/plugin",
"nu-command/plugin",
"nu-engine/plugin",
"nu-parser/plugin",
"nu-protocol/plugin",
]
mcp = [
"dep:nu-mcp",
"nu-mcp/mcp",
]
network = ["nu-command/network"]
native-tls = ["nu-command/native-tls"]
rustls-tls = ["nu-command/rustls-tls"]
default = [
"plugin",
"trash-support",
"sqlite",
"network",
"rustls-tls",
"mcp",
]
stable = ["default"]
static-link-openssl = ["dep:openssl"]
system-clipboard = [
"reedline/system_clipboard",
"nu-cli/system-clipboard",
]
trash-support = ["nu-command/trash-support"]
sqlite = [
"nu-cli/sqlite",
"nu-command/sqlite",
"nu-std/sqlite",
"nu-protocol/sqlite",
"reedline/sqlite"
]
[profile.release]
opt-level = "s"
strip = "debuginfo"
lto = "thin"
[profile.profiling]
inherits = "release"
strip = false
debug = true
[profile.ci]
inherits = "dev"
strip = false
debug = false
[[bin]]
name = "nu"
path = "src/main.rs"
bench = false
[patch.crates-io]
[[bench]]
name = "benchmarks"
harness = false