nushell/crates
Reilly Wood d5fa7b8a55
Put heavy dataframe dependencies behind feature flag (#9971)
Context from Discord:
https://discord.com/channels/601130461678272522/615962413203718156/1138694933545504819

I was working on Nu for the first time in a while and I noticed that
sometimes rust-analyzer takes a really long time to run `cargo check` on
the entire workspace. I dug in and it was checking a bunch of
dataframe-related dependencies even though the `dataframe` feature is
not built by default.

It looks like this is a regression of sorts, introduced by
https://github.com/nushell/nushell/pull/9241. Thankfully the fix is
pretty easy, we can make it so everything important in
`nu-cmd-dataframe` is only used when the `dataframe` feature is enabled.

### Impact on `cargo check --workspace`

Before this PR: 635 crates, 33.59s
After this PR: 498 crates, ~20s

(with the `mold` linker and a `cargo clean` before each run, the
relative difference for incremental checks will likely be much larger)
2023-08-09 22:36:09 -07:00
..
nu-cli Bump rstest from 0.17.0 to 0.18.1 (#9782) 2023-08-08 17:11:05 +00:00
nu-cmd-base bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-cmd-dataframe Put heavy dataframe dependencies behind feature flag (#9971) 2023-08-09 22:36:09 -07:00
nu-cmd-extra Cratification: move some str case commands to nu-cmd-extra (#9926) 2023-08-06 06:40:44 -07:00
nu-cmd-lang Fix match example whitespace (#9961) 2023-08-09 07:13:02 +02:00
nu-color-config Simplify default style and match Rust code to config (#9900) 2023-08-03 08:06:51 +12:00
nu-command fix panic with lines on an error (#9967) 2023-08-09 14:12:58 +02:00
nu-engine Module: support defining const and use const variables inside of function (#9773) 2023-08-01 07:09:52 +08:00
nu-explore update strip-ansi-escapes to 0.2.0 and the latest reedline (#9970) 2023-08-09 12:33:07 -05:00
nu-glob bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-json bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-parser Bump rstest from 0.17.0 to 0.18.1 (#9782) 2023-08-08 17:11:05 +00:00
nu-path bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-plugin bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-pretty-hex bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-protocol Fix duration type to not report months or years (#9632) 2023-08-08 06:24:09 -05:00
nu-std rename from date format to format date (#9902) 2023-08-04 06:06:00 +12:00
nu-system Enable macOS foreground process handling (#9909) 2023-08-04 15:43:35 -05:00
nu-table Add an option to set header on border (style) (#9920) 2023-08-04 13:50:47 -05:00
nu-term-grid bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-test-support bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-utils update strip-ansi-escapes to 0.2.0 and the latest reedline (#9970) 2023-08-09 12:33:07 -05:00
nu_plugin_custom_values bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu_plugin_example bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu_plugin_formats bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu_plugin_gstat Replace &Span with Span since Span is Copy (#9770) 2023-07-31 21:47:46 +02:00
nu_plugin_inc bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu_plugin_python remove vectorize_over_list from python plugin (#9905) 2023-08-03 16:46:48 +02:00
nu_plugin_query Replace &Span with Span since Span is Copy (#9770) 2023-07-31 21:47:46 +02: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.