nushell/crates
Stefan Holderbach 46eebc644c
Break up interdependencies of command crates (#9429)
# Description
Make sure that our different crates that contain commands can be
compiled in parallel.
This can under certain circumstances accelerate the compilation with
sufficient multithreading available.

## Details
- Move `help` commands from `nu-cmd-lang` back to `nu-command`
- This also makes sense as the commands are implemented in an
ANSI-terminal specific way
- Make `nu-cmd-lang` only a dev dependency for `nu-command`
- Change context creation helpers for `nu-cmd-extra` and
`nu-cmd-dataframe` to have a consistent api used in
`src/main.rs`:`get_engine_state()`
- `nu-command` now indepedent from `nu-cmd-extra` and `nu-cmd-dataframe`
that are now dependencies of `nu` directly. (change to internal
features)
- Fix tests that previously used `nu-command::create_default_context()`
with replacement functions

## From scratch compilation times:

just debug (dev) build and default features
```
cargo clean --profile dev && cargo build --timings
```

### before

![grafik](https://github.com/nushell/nushell/assets/15833959/e49f1f42-2e53-4a6c-bc23-625b686af1bc)

### after

![grafik](https://github.com/nushell/nushell/assets/15833959/8dec4723-e625-4a86-b91e-e6e808f64726)

# User-Facing Changes
None direct, only change to compilation on multithreaded jobs expected.

# Tests + Formatting
Tests that previously chose to use `nu-command` for their scope will
still use `nu-cmd-lang` + `nu-command` (command list in the granularity
at the time)
2023-06-14 23:12:55 +02:00
..
nu-cli Break up interdependencies of command crates (#9429) 2023-06-14 23:12:55 +02:00
nu-cmd-dataframe Break up interdependencies of command crates (#9429) 2023-06-14 23:12:55 +02:00
nu-cmd-extra Break up interdependencies of command crates (#9429) 2023-06-14 23:12:55 +02:00
nu-cmd-lang Break up interdependencies of command crates (#9429) 2023-06-14 23:12:55 +02:00
nu-color-config Changes HashMap to use aHash instead, giving a performance boost. (#9391) 2023-06-10 11:41:58 -05:00
nu-command Break up interdependencies of command crates (#9429) 2023-06-14 23:12:55 +02:00
nu-engine allow paths to have brackets (#9416) 2023-06-13 07:30:10 -05:00
nu-explore Move explore command out of nu-command deps (#9421) 2023-06-14 01:18:36 +02:00
nu-glob Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu-json Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu-parser Remove ZB and ZiB from file size type (#9427) 2023-06-14 10:53:32 -05:00
nu-path Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu-plugin Changes HashMap to use aHash instead, giving a performance boost. (#9391) 2023-06-10 11:41:58 -05:00
nu-pretty-hex Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu-protocol Remove ZB and ZiB from file size type (#9427) 2023-06-14 10:53:32 -05:00
nu-std std: refactor test-runner to no longer require tests to be exported (#9355) 2023-06-10 20:16:17 +02:00
nu-system Changes HashMap to use aHash instead, giving a performance boost. (#9391) 2023-06-10 11:41:58 -05:00
nu-table nu-table: Bump tabled to 0.12.1 (#9341) 2023-06-11 17:33:54 -05:00
nu-term-grid Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu-test-support Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu-utils Remove ZB and ZiB from file size type (#9427) 2023-06-14 10:53:32 -05:00
nu_plugin_custom_values Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu_plugin_example Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu_plugin_formats update ini dependency (#9426) 2023-06-13 13:33:00 -05:00
nu_plugin_gstat Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu_plugin_inc Bump to 0.81.1 as development version (#9379) 2023-06-07 15:06:42 +02:00
nu_plugin_python update nu_plugin_python due to signature changes (#8107) 2023-02-18 13:27:24 +00:00
nu_plugin_query Changes HashMap to use aHash instead, giving a performance boost. (#9391) 2023-06-10 11:41:58 -05:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.