[package] authors = ["The Nushell Project Developers"] default-run = "nu" description = "A new type of shell" documentation = "https://www.nushell.sh/book/" edition = "2021" exclude = ["images"] homepage = "https://www.nushell.sh" license = "MIT" name = "nu" repository = "https://github.com/nushell/nushell" rust-version = "1.60" version = "0.76.1" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [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" [workspace] members = [ "crates/nu-cli", "crates/nu-engine", "crates/nu-parser", "crates/nu-system", "crates/nu-command", "crates/nu-protocol", "crates/nu-plugin", "crates/nu_plugin_inc", "crates/nu_plugin_gstat", "crates/nu_plugin_example", "crates/nu_plugin_query", "crates/nu_plugin_custom_values", "crates/nu_plugin_formats", "crates/nu-utils", ] [dependencies] chrono = { version = "0.4.23", features = ["serde"] } crossterm = "0.24.0" ctrlc = "3.2.1" log = "0.4" miette = { version = "5.5.0", features = ["fancy-no-backtrace"] } nu-ansi-term = "0.46.0" nu-cli = { path = "./crates/nu-cli", version = "0.76.1" } nu-color-config = { path = "./crates/nu-color-config", version = "0.76.1" } nu-command = { path = "./crates/nu-command", version = "0.76.1" } nu-engine = { path = "./crates/nu-engine", version = "0.76.1" } nu-json = { path = "./crates/nu-json", version = "0.76.1" } nu-parser = { path = "./crates/nu-parser", version = "0.76.1" } nu-path = { path = "./crates/nu-path", version = "0.76.1" } nu-plugin = { path = "./crates/nu-plugin", optional = true, version = "0.76.1" } nu-pretty-hex = { path = "./crates/nu-pretty-hex", version = "0.76.1" } nu-protocol = { path = "./crates/nu-protocol", version = "0.76.1" } nu-system = { path = "./crates/nu-system", version = "0.76.1" } nu-table = { path = "./crates/nu-table", version = "0.76.1" } nu-term-grid = { path = "./crates/nu-term-grid", version = "0.76.1" } nu-utils = { path = "./crates/nu-utils", version = "0.76.1" } reedline = { version = "0.16.0", features = ["bashisms", "sqlite"] } rayon = "1.6.1" is_executable = "1.0.1" simplelog = "0.12.0" time = "0.3.12" [target.'cfg(not(target_os = "windows"))'.dependencies] # Our dependencies don't use OpenSSL on Windows openssl = { version = "0.10.38", features = ["vendored"], optional = true } signal-hook = { version = "0.3.14", default-features = false } [target.'cfg(windows)'.build-dependencies] winres = "0.1" [target.'cfg(target_family = "unix")'.dependencies] nix = { version = "0.25", default-features = false, features = [ "signal", "process", "fs", "term", ] } atty = "0.2" [dev-dependencies] nu-test-support = { path = "./crates/nu-test-support", version = "0.76.1" } tempfile = "3.2.0" assert_cmd = "2.0.2" criterion = "0.4" pretty_assertions = "1.0.0" serial_test = "1.0.0" hamcrest2 = "0.3.0" rstest = { version = "0.16.0", default-features = false } itertools = "0.10.3" [features] plugin = [ "nu-plugin", "nu-cli/plugin", "nu-parser/plugin", "nu-command/plugin", "nu-protocol/plugin", "nu-engine/plugin", ] # extra used to be more useful but now it's the same as default. Leaving it in for backcompat with existing build scripts extra = ["default"] default = ["plugin", "which-support", "trash-support", "sqlite"] stable = ["default"] wasi = [] # Enable to statically link OpenSSL; otherwise the system version will be used. Not enabled by default because it takes a while to build static-link-openssl = ["dep:openssl"] # Stable (Default) which-support = ["nu-command/which-support"] trash-support = ["nu-command/trash-support"] # Extra # Dataframe feature for nushell dataframe = ["nu-command/dataframe"] # SQLite commands for nushell sqlite = ["nu-command/sqlite"] [profile.release] opt-level = "s" # Optimize for size strip = "debuginfo" lto = "thin" # build with `cargo build --profile profiling` # to analyze performance with tooling like linux perf [profile.profiling] inherits = "release" strip = false debug = true # build with `cargo build --profile ci` # to analyze performance with tooling like linux perf [profile.ci] inherits = "dev" strip = false debug = false # Main nu binary [[bin]] name = "nu" path = "src/main.rs" bench = false # To use a development version of a dependency please use a global override here # changing versions in each sub-crate of the workspace is tedious [patch.crates-io] # reedline = { git = "https://github.com/nushell/reedline.git", branch = "main" } # Criterion benchmarking setup # Run all benchmarks with `cargo bench` # Run individual benchmarks like `cargo bench -- ` e.g. `cargo bench -- parse` [[bench]] name = "benchmarks" harness = false