[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 = "2021" exclude = ["images"] homepage = "https://www.nushell.sh" license = "MIT" name = "nu" repository = "https://github.com/nushell/nushell" rust-version = "1.60" version = "0.84.0" # 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-cmd-base", "crates/nu-cmd-extra", "crates/nu-cmd-lang", "crates/nu-cmd-dataframe", "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-std", "crates/nu-utils", ] [dependencies] nu-cli = { path = "./crates/nu-cli", version = "0.84.0" } nu-color-config = { path = "./crates/nu-color-config", version = "0.84.0" } nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.84.0" } nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.84.0" } nu-cmd-dataframe = { path = "./crates/nu-cmd-dataframe", version = "0.84.0", features = ["dataframe"], optional = true } nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.84.0", optional = true } nu-command = { path = "./crates/nu-command", version = "0.84.0" } nu-engine = { path = "./crates/nu-engine", version = "0.84.0" } nu-explore = { path = "./crates/nu-explore", version = "0.84.0" } nu-json = { path = "./crates/nu-json", version = "0.84.0" } nu-parser = { path = "./crates/nu-parser", version = "0.84.0" } nu-path = { path = "./crates/nu-path", version = "0.84.0" } nu-plugin = { path = "./crates/nu-plugin", optional = true, version = "0.84.0" } nu-pretty-hex = { path = "./crates/nu-pretty-hex", version = "0.84.0" } nu-protocol = { path = "./crates/nu-protocol", version = "0.84.0" } nu-system = { path = "./crates/nu-system", version = "0.84.0" } nu-table = { path = "./crates/nu-table", version = "0.84.0" } nu-term-grid = { path = "./crates/nu-term-grid", version = "0.84.0" } nu-std = { path = "./crates/nu-std", version = "0.84.0" } nu-utils = { path = "./crates/nu-utils", version = "0.84.0" } nu-ansi-term = "0.49.0" reedline = { version = "0.23.0", features = ["bashisms", "sqlite"]} crossterm = "0.26" ctrlc = "3.4" log = "0.4" miette = { version = "5.10", features = ["fancy-no-backtrace"] } mimalloc = { version = "0.1.37", default-features = false, optional = true} serde_json = "1.0" simplelog = "0.12" time = "0.3" [target.'cfg(not(target_os = "windows"))'.dependencies] # Our dependencies don't use OpenSSL on Windows openssl = { version = "0.10", features = ["vendored"], optional = true } signal-hook = { version = "0.3", default-features = false } [target.'cfg(windows)'.build-dependencies] winresource = "0.1" [target.'cfg(target_family = "unix")'.dependencies] nix = { version = "0.26", default-features = false, features = [ "signal", "process", "fs", "term", ] } is-terminal = "0.4.8" [dev-dependencies] nu-test-support = { path = "./crates/nu-test-support", version = "0.84.0" } assert_cmd = "2.0" criterion = "0.5" pretty_assertions = "1.4" rstest = { version = "0.18", default-features = false } serial_test = "2.0" tempfile = "3.7" [features] plugin = [ "nu-plugin", "nu-cli/plugin", "nu-parser/plugin", "nu-command/plugin", "nu-protocol/plugin", "nu-engine/plugin", ] default = ["plugin", "which-support", "trash-support", "sqlite"] stable = ["default"] wasi = ["nu-cmd-lang/wasi"] # NOTE: individual features are also passed to `nu-cmd-lang` that uses them to generate the feature matrix in the `version` command # 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", "nu-cmd-lang/static-link-openssl"] mimalloc = ["nu-cmd-lang/mimalloc", "dep:mimalloc"] # Stable (Default) which-support = ["nu-command/which-support", "nu-cmd-lang/which-support"] trash-support = ["nu-command/trash-support", "nu-cmd-lang/trash-support"] # Extra feature for nushell extra = ["dep:nu-cmd-extra", "nu-cmd-lang/extra"] # Dataframe feature for nushell dataframe = ["dep:nu-cmd-dataframe", "nu-cmd-lang/dataframe"] # SQLite commands for nushell sqlite = ["nu-command/sqlite", "nu-cmd-lang/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"} # nu-ansi-term = {git = "https://github.com/nushell/nu-ansi-term.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