# nu_plugin_vec
[](https://crates.io/crates/nu_plugin_vec)
[](https://nushell.sh)
A plugin for [Nushell](https://nushell.sh), a cross-platform shell and scripting language. This plugin adds support for
vector operations.
## Installation
### Cargo
Get the latest version from [crates.io](https://crates.io/crates/nu_plugin_vec) with a local install:
```bash
cargo install nu_plugin_vec # Downloads and installs the plugin
plugin add ~/.cargo/bin/nu_plugin_vec # Registers the plugin with Nushell
plugin use vec # Activates the plugin
```
### Manual build
Manual builds can also be used:
```bash
git clone https://github.com/PhotonBursted/nu_plugin_vec.git # Clone the repository
cd nu_plugin_vec # Enter the repo folder
cargo build -r # Build a release version of the plugin
plugin add target/release/nu_plugin_vec # Registers the plugin with Nushell
plugin use vec # Activates the plugin
```
## Features
The plugin offers adds some new commands, which aim to make scripting vector-like operations a smoother experience.
Below, a few use cases are shown, which outline the difference this plugin makes.
### Showcase
#### Addition and subtraction
```
# Vanilla Nushell
# Nushell + nu_plugin_vec
#### Dot product
```
# Vanilla Nushell
# Nushell + nu_plugin_vec
#### Vector similarity
```
# Vanilla Nushell
let dot_product = ($vec1 | zip $vec2 | each { |pair| ($pair | first) * ($pair | last) } | math sum)
$dot_product / ($magnitude1 * $magnitude2)
# Nushell + nu_plugin_vec
### Command list
The list of commands currently available is as follows:
- `vec add` and `vec sub` for addition and subtraction
- `vec cos` and `vec sin` for angle calculation
- `vec dot` for dot products
- `vec sqnorm` and `vec magnitude` for length measurements
- `vec normalize` for conversions into unit vectors
For more information, invoke `help <command>` in your Nushell session.