Nushell 0.65
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.65 of Nu. This release includes better support for binary data, a new way of checking source files for correctness, improved command unification, and more.
Where to get it
Nu 0.65 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
Better support for binary data (hustcer, sophiajt, CBenoit)
Binary support in Nushell has steadily improved, and in this release, it's gotten a strong push forward. New features include:
- New operators
bit-and
,bit-or
,bit-xor
, as well as renamedbit-shl
andbit-shr
. These correspond to bitwise and, or, exclusive or, shift left, and shift right. - A new
encode
command as well as binary support forhash
- Improved binary support for
skip
andtake
.
Nu-check (Kangaxx-0)
Starting with this release, Nushell now provides a nu-check
command which can do a check over a source file for potential parsing and typechecking errors. This will make it easier for script authors to check their scripts without running them. In the future, this may also be an easy way for editors to check a script and return errors during editing.
Unification continues (elferherrera)
In 0.65, we've also continued the process to unify commands for different datatypes. In this release, db
and mysql support has simplified, bringing it closer to the already existing dataframe support.
Before:
open myfile.db
| db select a
| db from table_1
| db where ((db col a) > 1 | db and ((db col a) < 10))
Now:
open myfile.db
| select a
| from table_1
| where ((field a) > 1 | and ((field a) < 10))
Like the dataframe support, this is built on the new support to overload commands based on their input type. This will allow Nushell to have a nice, uniform syntax that just works over a variety of data types in the future.
Additional new commands
You can now use the port
command to find the next available port. (WindSoilder)
Looking ahead
With 0.65, Nushell continues to move towards a more polished, more full-featured language that can handle a wider range of datatypes well. We're continuing to work towards this goal and find ways to continue to unify the language, allowing you to learn one language and apply that knowledge to many types of data.
Full changelog
Nushell
- sholderbach created Pin reedline to new 0.8.0 release
- sophiajt created bump to 0.65, and Fix 'skip' support for binary streams, and Make
take
work likefirst
, and Binary into int, and Rename bitwise operators for readability, and Move input/output type from Command to Signature, and Clippy and remove unused is_binary, and Bump to 0.64.1 dev version - WindSoilder created add bytes starts-with command, and add bytes length command, and add -e flag to print, to print the value to stderr, and change default keybinding in default config, and make module imports in scripts used for relative path., and make path exists work on expanded path, and simplify error make, and fix plugin path with whitespace, and Port command, and fix exit code, and add notes for def_env, and add light theme to default_config
- hustcer created Add bit operator:
bit-xor
, and Addband
andbor
operator for bit operations, and Update #4202: Add shift operator bshl and bshr for integers, and Add an example fordefault
command to get an env var with fallback, and Fix less.exe downloading for windows release pkgs, close #5868, and feat: Update dockerfile for latest nu release - merelymyself created add search terms for
is-admin
, and ensurerequired
positionals don't show up asoptional
whenhelp
, and Better error handling usingdo
, and Errors whenlet in
,let env
and similar commands are passed., and Finish git fetch custom completions to allow for completing branch, and Prevents duplicate fields intranspose -r
, and Calculate history duration properly (sqlite), and Fixesto nuon
forinf
,-inf
, andNaN
, and Attempts to fix file completions foropen
,rm
andls
(and other filesystem commands) - IsaacKhor created Change C-u and C-k to be readline compatible, move old C-u to C-s
- nibon7 created Fix
to md --pretty
when rendering a list, and Return error when external command core dumped, and Fix drop nth with open end range on 32-bit platforms - fdncred created fix parse_failure_due_conflicted_flags test, and fix bug where
thin
theme wasn't getting applied correctly, and fix excessive ansi escape sequences, and update encode decode with new signature, and add ability to convert timestamp_millis(), and cleanup$config
as a built-in, and update reedline config based on recent reedline changes, and first stab at minimizing ansi escapes, and add more columns to the history command when using sqlite history - stormasm created update crate thiserror to version 1.0.31 in four crates, and Move the history and tutor commands out of core_commands
- Kangaxx-0 created Add all flag to nu-check command, and Introduce new command - nu check, and Remove external nu from nu config, and Add more tests for completion, and Fix alias completion crash
- Yethal created Slim down Dockerfile
- CBenoit created docs: clarify
print
andecho
commands, and build: updatemiette
dependency, and feat: add--binary(-b)
option tohash
commands, and Deprecatehash base64
, extenddecode
and addencode
commands - elferherrera created Header filtering out of for loop, and Dataframe with real index, and Remove extra print, and Remove quotes from external args, and Allow type comparison, and Exclude ./... from expansion, and Db commands without DB, and Standardise to commands
- rgwood created Make sort logic available outside sort-by, and Fix parser panic
- skelly37 created root/admin prompt is red now
- wolimst created Add Windows Terminal profile and icon in Windows control panel
- kubouch created Add test requirements to PR template
Extension
- schuelermine created Fix typo in Snippet
Documentation
- petrisch created DE translation for pipelines and scripts, and DE translation for working with lists and tables, and DE translation for loading data and working with strings
- merelymyself created Changes misleading example, and Links
types_of_data
page todescribe
command - relby created Fix outdated
$false
value - toastal created Syntax highlighting as
console
- hustcer created Translate overlays.md to Chinese, and Fix broken images in README.md, and fix broken table rendering for operators, and Update zh_CN translation of dataframes and working_with_strings, and Update doc template for commands, and Update zh_CN translation for nu books, and feat: update some zh_CN translations of nu book, and Remove old_book related stuffs, and Fix command overlapping for
make_docs.nu
and Refresh commands for v0.64 - elferherrera created Standard command name
- rgwood created Remove MS CRT info now that we're statically linking it
Nu Scripts
- fdncred created update get_weather to use the new error make, and add stargazer script to monitor nushell stars, and add turtle benchmark and reorganize
- Yethal created Added delete-merged-branches.nu
- skelly37 created maths refactor, and up.nu fixed
Reedline
- sholderbach created Prepare the 0.8.0 release
- nibon7 created Avoid subtraction overflow when using usize.
- WindSoilder created introduce LastCommand variant for parse bang result, and fix double bang
- fdncred created add impl Display to HistoryItemId and HistorySessionId
- drbrain created Add vi r (replace), and Add vi WORD motions B, E, W