Nushell 0.64
Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines.
Today, we're releasing version 0.64 of Nu. It's the first to include input overloading, input/output types, and lazy dataframes.
Where to get it
Nu 0.64 is available as pre-built binaries or from crates.io. If you have Rust installed you can install it using cargo install nu
.
If you want all the built-in goodies, you can install cargo install nu --features=extra
.
As part of this release, we also publish a set of optional plugins you can install and use with Nu. To install, use cargo install nu_plugin_<plugin name>
.
Themes of this release
Input overloading (elferherrera)
Commands can now declare their input and output types. While this support is still initial and isn't yet available in the syntax, we're already using it for one important improvement: simplifying the commands.
In this release, dataframe commands can now detect the input type in the pipeline and run without needing to be called with dfr
before every command. The end result is much cleaner:
Before:
> [[a b]; [1 2] [3 4]] | dfr to-df | dfr drop a
After:
> [[a b]; [1 2] [3 4]] | to-df | drop a
This allows dataframe commands to feel more natural and fit more cleanly in with other commands. We're also looking to make similar improvements to the db
command. In the future, you'll be able to open a data source and then use the standard nushell commands against it, and Nushell will select the best fit based on the type of data source you're opening.
Lazy dataframes (elferherrera)
Dataframes now have lazy operations. These lazy operations allow users to build up multiple steps of a pipeline and execute them in a much more efficient way against the dataframe.
Future SQLite backed history (phiresky)
The API for storing history entries has changed in the background. This now supports also storing your history in a SQLite database. Currently this adds some metadata such as the current working directory, whether a command succeeded, and execution times. In the future this will enable you to query the history in a more rich and meaningful way.
Currently the simple text based history is still the default. If you want to test out the new history change your config to contain:
let-env config = {
...
history_file_format: "sqlite" # "sqlite" or "plaintext"
...
}
Improvements
- Using Nu as a login shell now has a special config file. (sec65)
- Unix-based Nushell can now handle SIGQUIT (WindSoilder)
- This release also includes binaries for more platforms (hustcer)
You can see the full list in the Changelog below.
Looking ahead
The new input/output types and type overloading allows for a simpler, more uniform Nushell language. We're looking forward to continuing to improve this as well as improving the Nushell language around it.
We've also recent shown an experimental graphical version of Nushell. This experiment is something you can use today across the platforms that Nushell supports.
Changelog
Nushell
- WindSoilder created add --values flag to sort record by values, by default, sort record by keys, and sort not change shape, and path join support multi path, and fix arg parse, and While starting nu, force PWD to be current working directory, and handle SIGQUIT, and add as record tag to transfer result to record, and print warning message if meet non utf-8 path, and fix argument type, and expand env for path, and make ls works better with glob, and base64 command more friendly, and make cp can copy folders contains dangling symbolic link, and make sure no duplicate column exists during eval and merge
- sholderbach created Pin reedline v0.7.0 for the nushell v0.64.0 release, and Address lints from clippy for beta/nightly, and Use search terms in the help menu search, and Update nu-ansi-term to remove
Deref
impl, and Improve internal documentation ofsave
command, and Update reedline, and Clarify error message forlet
in pipeline, and Update reedline: Support more bindings in vi mode, and Improve test coverage of command examples, and Add search terms fordescribe
, and Unpin reedline for regular development - elferherrera created bool type for binary operations, and each while command, and filesize conversion, and expression to literal, and Remove dfr from dataframe commands, and input and output types, and Lazy dataframes
- sophiajt bumped to 0.64, and Force floats to output a decimal in nuon, and bump to dev version
- merelymyself created Add option to sort-by naturally, and Attempts to add
//
math operator, and add search terms to alias, and Improves help str substring, and Attempts to add a command that checks if nushell is running with admin privileges, and Makerange
require its positional argument, and Small typo fix insignature.rs
, and prevent panic withlet
alone in pipeline, and Add '-o'/--output
flag tofetch
to download to file, and Add search terms to error make, and Makes a more helpful error forlet
in pipeline - Kangaxx-0 created Add NU config to allow user be able to turn off external completion, and Support completion for alias and sub-command, and Fix cp bug
- fdncred created more verbose error handling, and make
to text
work more intuitively, and add case_sensitive_completions config option - hustcer created Add setup-nu link in README.md, and fix: normalize some parameter names, and Fix doc building for vuepress-next, avoid using angle brackets, and feat: Add sensitive flag to get, fix #4295, and feat: Add search terms to find, where, exit, which and fetch, update #5093, and Refactor and optimize the github release workflow: deliver binary package for more targets
- Mathspy created Should we keep old semantics of
uniq
command? - rgwood created Temporarily disable rust-cache in tests, and Clean up README, and Statically link the CRT on Windows, and Fix
ls
for Windows system files, and Don't build OpenSSL on Windows - kubouch created Add
$nu.scope.engine_state
, and Fix wrongpath
help message, and Shorten the links of parser keywords help msgs, and Add 'overlay new' command - jaeheonji created feat: add search terms to category of strings
- phiresky created SQLite History MVP with timestamp, duration, working directory, exit status metadata
- herlon214 created nu-engine: better display for shape when showing help params, and nu-cli/completions: add filtering tests for variables completions, and nu-cli/completions: fix filter for variable completions
- sec65 created Added loginshell config file #4620
- VergeDX created fix[table]: Panic when passthru small number of
table -w
., and feat[table]: Allow specific table width with-w
, like commandgrid
. - PerBothner created Minor fixes to shell integration in repl., and Improve table output of 'to html',
- Yethal created Add completions for nu
- mjclements created Differentiate internal signature from external signature w.r.t. help
- EjPlatzer created Add search terms for
all?
,any?
,length
, andkeybindings
- tenshik created feat: add search terms to random & typo fix
- onthebridgetonowhere created Fix drop nth bug
Documentation
- aslilac created docs(book): Update the "Coming from Bash" page
- jcjolley created Show how to cast between number types
- f2hafner created Fixed example causing type_mismatch in working_with_lists.md
- hustcer created Add nav links for some new de docs, and do dome doc formatting, and Fix side nav links for nu book, and Fix some broken links, and fix: update deploy workflow for checkout, and Revert "Fix checkout step for feed plugin", and Fix checkout step for feed plugin, and fix feed plugin configs, make it work as expected, and feat: Add sitemap generator to create sitemap.xml, and Fix responsive layout for more screen size, and Fix responsive layout for mobile devices, and Update prettier config and run code format, and fix feed plugin add atom support, and Fix search box style, make it wider, and Fix search box style, make it align left, and Trigger deploy workflow, and Fix command detail page, update make_docs.nu, and Upgrade vuepress to v2 and add dark mode support
- petrisch created Some new German translation with new snippet links
- elferherrera created remove dfr from dataframe chapter, and lazyframes section
- lfritz created Fix a couple of typos
- CAD97 created Replace
str find-replace
withstr replace
incoming_from_bash.md
- sec65 created Add doc for loginshell file #4620
- Dan-Gamin created Add more documentation about strings
- merelymyself created Add documentation for switch flags
- fdncred created remove file paths since they're not a thing any longer
- jgollenz created Add 'Reading environment variables' section, and typos
- Yethal created Update dataframes.md
- kubouch created Fix config variable name, and Add 'overlay new' tip, and Add overlays chapter
- schuelermine created book/operators.md: add
not
operator
Nu_Scripts
- Yethal created Update branch-protections.nu, and Add branch protections, and Update remoting.nu, and Update ssh script for 0.63.0, and Update make-completions.nu
- skelly37 created Update checker for /etc/hosts, and cdpath.nu -- more clear for windows, and cdpath fixed for windows, and cdpath.nu moved and improved
- Dan-Gamin created Add
helpers
folder and add script for running C/C++ quickly, and Add pwd-short to cool-oneliners, and Add more cargo completions - ehdevries created Improve panache-git performance for changes with many files
- Jacobious52 created generated nu completions from fish, and autogenerate from Fish shell completions
- sholderbach created Script to gather test coverage for nushell
- fdncred created use default bg color for execution time
reedline
- sholderbach created Prepare 0.7.0 release, and Expose the
History
query functionality, and Update nu-ansi-term/update crate patch versions, and Fix clippy lints that will become warnings, and Organize the common keybindings - WindSoilder created Don't panic when parent directory does not exist
- Artturin created Move ctrl+a & ctrl+e to common navigation binds, and Move some commonly used keybinds to common keybinds
- phiresky created SQLite History (third version)