mirror of
https://github.com/nushell/nushell.git
synced 2025-06-13 21:47:02 +02:00
# Description Generally elide a bunch of unnecessary clones. Both globally stopping to clone the whole input data in a bunch of places where we need to read it but also some minor places where we currently cloned. As part of that, we can make the overwriting with `keep-all` and `keep-last` inplace so the items don't need to be removed and repushed to the record. # Benchmarking ```nu timeit { scope commands | transpose -r } ``` Before ~24 ms now just ~5 ms # User-Facing Changes This can change the order of apperance in the transposed record with `--keep-last`/`--keep-all`. Now the order is determined by the first appearance and not by the last appearance in the ingoing columns. This mirrors the behavior when not passed `keep-all` or `keep-last`. # Tests + Formatting Sadly the `transpose` command is so far undertested for more complex operations.
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.