[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.74.1" version = "0.90.2" # 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-color-config", "crates/nu-explore", "crates/nu-json", "crates/nu-lsp", "crates/nu-pretty-hex", "crates/nu-protocol", "crates/nu-plugin", "crates/nu_plugin_inc", "crates/nu_plugin_gstat", "crates/nu_plugin_example", "crates/nu_plugin_stream_example", "crates/nu_plugin_query", "crates/nu_plugin_custom_values", "crates/nu_plugin_formats", "crates/nu-std", "crates/nu-table", "crates/nu-term-grid", "crates/nu-test-support", "crates/nu-utils", ] [dependencies] nu-cli = { path = "./crates/nu-cli", version = "0.90.2" } nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.90.2" } nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.90.2" } nu-cmd-dataframe = { path = "./crates/nu-cmd-dataframe", version = "0.90.2", features = [ "dataframe", ], optional = true } nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.90.2", optional = true } nu-command = { path = "./crates/nu-command", version = "0.90.2" } nu-engine = { path = "./crates/nu-engine", version = "0.90.2" } nu-explore = { path = "./crates/nu-explore", version = "0.90.2" } nu-lsp = { path = "./crates/nu-lsp/", version = "0.90.2" } nu-parser = { path = "./crates/nu-parser", version = "0.90.2" } nu-path = { path = "./crates/nu-path", version = "0.90.2" } nu-plugin = { path = "./crates/nu-plugin", optional = true, version = "0.90.2" } nu-protocol = { path = "./crates/nu-protocol", version = "0.90.2" } nu-std = { path = "./crates/nu-std", version = "0.90.2" } nu-utils = { path = "./crates/nu-utils", version = "0.90.2" } reedline = { version = "0.29.0", features = ["bashisms", "sqlite"] } crossterm = "0.27" ctrlc = "3.4" log = "0.4" miette = { version = "7.1", features = ["fancy-no-backtrace", "fancy"] } 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 } [target.'cfg(windows)'.build-dependencies] winresource = "0.1" [target.'cfg(target_family = "unix")'.dependencies] nix = { version = "0.27", default-features = false, features = [ "signal", "process", "fs", "term", ] } [dev-dependencies] nu-test-support = { path = "./crates/nu-test-support", version = "0.90.2" } assert_cmd = "2.0" criterion = "0.5" pretty_assertions = "1.4" rstest = { version = "0.18", default-features = false } serial_test = "3.0" tempfile = "3.10" [features] plugin = [ "nu-plugin", "nu-cli/plugin", "nu-parser/plugin", "nu-command/plugin", "nu-protocol/plugin", "nu-engine/plugin", ] default = ["default-no-clipboard", "system-clipboard"] # Enables convenient omitting of the system-clipboard feature, as it leads to problems in ci on linux # See https://github.com/nushell/nushell/pull/11535 default-no-clipboard = [ "plugin", "which-support", "trash-support", "sqlite", "mimalloc", ] 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 (perl is required, to build OpenSSL https://docs.rs/openssl/latest/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"] system-clipboard = ["reedline/system_clipboard"] # 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", 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