forked from extern/nushell
hello there 👋 😋 as discussed over on the discord server, in `#standard-library`, there is this new project of putting together a bunch of "_standard_" scripts and functions and propose a `nushell` "_standard library_". this PR is the first one in that direction 🎉 > **Note** > ~~this PR is still a draft to have some feedback 😌~~ > this PR is now **READY FOR REVIEW** 🎉 # Description this PR implements the following few commands: - the `assert` familly with a private helper `_assert` - a version of the `match` statement i've also added some examples in the docstrings of the functions 👍 # User-Facing Changes the standard library can now be used with ```bash use crates/nu-utils/src/sample_config/std.nu ``` from the root of the `nushell` source # Tests + Formatting i've written a first draft of a [`tests.nu`](https://github.com/amtoine/nushell/blob/feature/first-draft-of-the-standard-library/crates/nu-utils/src/sample_config/tests.nu) module which - tests the `assert` familly of function in `test_assert` - tests the rest of the standard library in `tests` the tests are run with ```bash nu crates/nu-utils/src/sample_config/tests.nu ``` through the `main` function and should give no error 👍 > **Note** > if you change one of the test line, there should be an error popping when running the tests 😉 # After Submitting > **Warning** > to be coming
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.