Home Explore Blog CI



nushell

13th chunk of `blog/2019-08-23-introducing-nushell.md`
f09ebd586103d603756b47d57305043e2a761716600eb7e10000000100000cdc
Using `n` and `p` we can jump back and forth between the shells. `exit` gets us out of a shell.

You might noticed that `name` column in the `shells` table. Why's that there? Oh no... oh yes.

```
> enter Cargo.toml
/> shells
---+---+--------------------------------------------+-----------------------------
 # |   | name                                       | path
---+---+--------------------------------------------+-----------------------------
 0 |   | filesystem                                 | /home/sophia/Source/nushell
 1 |   | filesystem                                 | /home/sophia/Source/rhai
 2 | X | {/home/sophia/Source/nushell/Cargo.toml} | /
---+---+--------------------------------------------+-----------------------------
```

That's right, we're in the file. Can we `cd`? Oh yes, we can:

```
/> ls
------------+--------------+------------------+----------+----------
 bin        | dependencies | dev-dependencies | lib      | package
------------+--------------+------------------+----------+----------
 [11 items] | [object]     | [object]         | [object] | [object]
------------+--------------+------------------+----------+----------
/> cd bin
/bin> ls
----+----------------------+---------------------------
 #  | name                 | path
----+----------------------+---------------------------
 0  | nu_plugin_inc        | src/plugins/inc.rs
 1  | nu_plugin_sum        | src/plugins/sum.rs
 2  | nu_plugin_add        | src/plugins/add.rs
 3  | nu_plugin_edit       | src/plugins/edit.rs
 4  | nu_plugin_str        | src/plugins/str.rs
 5  | nu_plugin_skip       | src/plugins/skip.rs
 6  | nu_plugin_sys        | src/plugins/sys.rs
 7  | nu_plugin_tree       | src/plugins/tree.rs
 8  | nu_plugin_binaryview | src/plugins/binaryview.rs
 9  | nu_plugin_textview   | src/plugins/textview.rs
 10 | nu                   | src/main.rs
----+----------------------+---------------------------
```

# Plugins

Nu can't come with everything you might want to do with it, so we're releasing Nu with the ability to extend it with plugins. There's more information in the [plugins chapters](https://www.nushell.sh/book/plugins.html). Nu will look for these plugins in your path, and load them up on startup.

# All because of Rust

Nu would not have been possible without Rust. Internally, it uses async/await, async streams, and liberal use of "serde" to manage serializing and deserializing into the common data format and to communicate with plugins.

We also heavily leveraged [crates.io](https://crates.io). The ability to load numerous file formats, display messages, draw tables, and more all came from the hundreds (thousands?) of generous developers who wrote the crates we use in Nu. A **huge** thank you to everyone who contributed to Nu without ever knowing it.

# What's next?

Nu is just getting started. In this release, we have a foundation to build on. Next, we'll work towards stability, the ability to use Nu as your main shell, the ability to write functions and scripts in Nu, and much more.

If you want to give it a spin, the [installation instructions](https://book.nushell.sh/en/installation) will help you get started. If you want to chat come by our [discord](https://discord.gg/NtAbbGn) and [github](https://github.com/nushell/nushell)

Title: Navigating Files as Shells, Plugins, Rust Foundation, and Future Development
Summary
Nu allows navigation within files as if they were directories. The shell is extensible via plugins, which are loaded at startup. Nu is built using Rust, leveraging async/await, async streams, and serde. The project acknowledges the contributions of the Rust ecosystem through crates.io. Future development includes stability improvements, broader use as a main shell, function and script writing capabilities.