Our great sponsors
nushell | volta | |
---|---|---|
212 | 84 | |
29,485 | 9,788 | |
4.0% | 3.6% | |
9.9 | 9.1 | |
7 days ago | 2 days ago | |
Rust | Rust | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nushell
- Xonsh: Python-powered, cross-platform, Unix-gazing shell
-
Fish shell 3.7.0: last release branch before the full Rust rewrite
Any thoughts on fish as compared to nushell [0]? It's similar to PowerShell in its philosophy and is also written in Rust.
That or https://www.nushell.sh/ which seems to be more interesting as it could be an equivalent to PowerShell for Unix.
-
jc: Converts the output of popular command-line tools to JSON
> In PowerShell, structured output is the default and it seems to work very well.
PowerShell goes a step beyond JSON, by supporting actual mutable objects. So instead of just passing through structured data, you effectively pass around opaque objects that allow you to go back to earlier pipeline stages, and invoke methods, if I understand correctly: https://learn.microsoft.com/en-us/powershell/module/microsof....
I'm rather fond of wrappers like jc and libxo, and experimental shells like https://www.nushell.sh/. These still focus on passing data, not objects with executable methods. On some level, I find this comfortable: Structured data still feels pretty Unix-like, if that makes sense? If I want actual objects, then it's probably time to fire up Python or Ruby.
Knowing when to switch from a shell script to a full-fledged programming language is important, even if your shell is basically awesome and has good programming features.
-
Ripgrep is faster than {grep, ag, Git grep, ucg, pt, sift}
Maybe if the "popular" shells, but http://www.nushell.sh/ is looking better and better
- "<ESC>[31M"? ANSI Terminal security in 2023 and finding 10 CVEs
-
jq 1.7 Released
Yeah agreed, especially now that PowerShell is available cross-platform.
Nushell[1] also seems like a promising alternative, but I havenโt had a chance to play with it yet.
-
The Case for Nushell
I also discovered an existing discussion[1] related to this topic which includes a link[2] to a "helper to call nushell nuon/json/yaml commands from bash/fish/zsh" and a comment[3] that the current nushell dev focus is "on getting the experience inside nushell right and [we] probably won't be able to dedicate design time to get the interface of native Nu commands with an outside POSIX shell right and stable.".
[0] https://gitlab.com/RancidBacon/notes_public/-/blob/main/note...
[1] "Expose some commands to external world #6554": https://github.com/nushell/nushell/issues/6554
[2] https://github.com/cruel-intentions/devshell-files/blob/mast...
[3] https://github.com/nushell/nushell/issues/6554#issuecomment-...
Today I learned (after disappearing down a rabbit hole after reading the linked article) that it's actually possible to begin to use & benefit from nushell's structured data pipe feature without changing one's current shell.
Structured data pipes have always been my primary reason for keeping an eye on nushell's development but after looking at the project's documentation again today it all still seemed "too much initial effort with uncertain outcome".
Because I don't want to switch my shell (not because bash is good but because it's not a priority to justify the expenditure of effort), I just want to have structured data in pipes within bash!
Turns out it's as easy as:
* nu --commands 'ls | where size > 1MiB'
(Where `nu` is the nushell binary being called from your existing shell prompt.)
Or, as more complete flow of data example:
* echo "[1,2,3]" | nu --stdin --commands 'from json | to json' | cat
Now you can fit nushell within your existing workflow where ever it's useful enough for you--without needing to commit to changing your entire shell.
(And this isn't the only or necessarily the best way to arrange things for the communication with bash--there's "^" & "externals" & "command signatures" & "from ssv" etc too.)
And nushell does have some nifty tools such as `explore` with `:try` to interactively build a processing pipeline.
But this information doesn't seem to be documented anywhere in the "book" or other introductory material. It only seems to be documented in the help message of the `nu` binary--which I almost didn't even get as far downloading today.
But then I found the help text in the source, so decided to try it again: https://github.com/nushell/nushell/blob/fd4ba0443d01e67f6304...
If the structured data pipes is one of the main appeals for you, maybe try this approach out?
volta
- Volta โ Fastest Node version manager in Rust
-
What's New in Node.js 21
Alternatively, a better way to manage Node.js releases on your machine is to use an environment management tool like Volta that can install and switch between multiple versions seamlessly.
-
Best practices for HarperDB projects using TypeScript
To use TypeScript you need Node.js installed, be sure to use the latest LTS version. You can check it by running node -v in your terminal. If you don't have it installed, you can download it here, or use a version manager like asdf, nvm, or even volta.
- INSTALLATION
-
Nx + NextJS + Docker - The Nx way: Creating the NextJS application
JS Tool Manager: Volta v1.1.1
-
Do you think it is better to default to latest in Nodejs release?
I recommend to use the Volta tool chain manager. Built with Rust, is faster than NVM and allow to pin package and node versions, global binaries and pin project tool versions with automatic package.json pinned versions load.
-
Nvm or homebrew for Node install
Listing people's recommendations with links below. I'm glad I asked this question. I received a lot of good recommendations. Thanks All! * nvm (https://nvm.sh) - Simple to use and easy to follow instructions with more in-depth configuration for those that need it. Some experienced a slightly slower terminal. Supports nodjs, iojs, and node version per project/directory. * fnm (https://github.com/Schniz/fnm) - Built with speed in mind. It is like nvm, but faster. Also supports node version per project/directory. * Volta (https://volta.sh/) - Looks easy to use and has good documentation. * asdf (https://asdf-vm.com/) - Supports multiple runtimes and tools by adding plugins. Admittedly, is a bit confusing and more than I need right now (Node, Rust, Python, Ruby, etc.) * Homebrew (https://brew.sh/) - Not a version manager but can act like one by installing nvm, fnm, asdf, or others. Some additional configuration may be needed. * Proto (https://moonrepo.dev/proto) - Supports Bun, Deno, Node.js (npm, pnpm, yarn), Rust, and Go. Also good documentation. Setup looks a bit complex to me :/. * n (https://github.com/tj/n) - Supports Node and npm per project. Simple and to the point.
-
The next generation node version manager
I literally just started orchestrating a switch for my team from NVM to Volta because of our desire for our Node/npm version Manager to just get out of the way.
-
TypeScript tooling and ecosystem
Prefer Volta over NVM. Much better UX and its inherently cross-platform.
-
Held broken package error
Have you tried to use nvm or volta to manage node? https://github.com/nvm-sh/nvm https://volta.sh/
What are some alternatives?
fnm - ๐ Fast and simple Node.js version manager, built in Rust
fish-shell - The user-friendly command line shell.
asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
elvish - Powerful scripting language & Versatile interactive shell
starship - โ๐๏ธ The minimal, blazing-fast, and infinitely customizable prompt for any shell!
nvm for Windows - A node.js version management utility for Windows. Ironically written in Go.
PowerShell - PowerShell for every system!
alacritty - A cross-platform, OpenGL terminal emulator.
n - Node version management
xonsh - :shell: Python-powered, cross-platform, Unix-gazing shell.
nvs - Node Version Switcher - A cross-platform tool for switching between versions and forks of Node.js