nushell/crates/nu-cli/src
Devyn Cairns 2595f31541
Overhaul the plugin cache file with a new msgpack+brotli format (#12579)
# Description

- Plugin signatures are now saved to `plugin.msgpackz`, which is
brotli-compressed MessagePack.
- The file is updated incrementally, rather than writing all plugin
commands in the engine every time.
- The file always contains the result of the `Signature` call to the
plugin, even if commands were removed.
- Invalid data for a particular plugin just causes an error to be
reported, but the rest of the plugins can still be parsed

# User-Facing Changes

- The plugin file has a different filename, and it's not a nushell
script.
- The default `plugin.nu` file will be automatically migrated the first
time, but not other plugin config files.
- We don't currently provide any utilities that could help edit this
file, beyond `plugin add` and `plugin rm`
  - `from msgpackz`, `to msgpackz` could also help
- New commands: `plugin add`, `plugin rm`

# Tests + Formatting

Tests added for the format and for the invalid handling.

- 🟢 `toolkit fmt`
- 🟢 `toolkit clippy`
- 🟢 `toolkit test`
- 🟢 `toolkit test stdlib`

# After Submitting

- [ ] Check for documentation changes
- [ ] Definitely needs release notes
2024-04-21 07:36:26 -05:00
..
commands fix simple typo in commandline_.rs (#12387) 2024-04-04 09:59:52 +02:00
completions Remove the Value::Block case (#12582) 2024-04-21 07:03:33 +02:00
menus Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
config_files.rs Overhaul the plugin cache file with a new msgpack+brotli format (#12579) 2024-04-21 07:36:26 -05:00
eval_cmds.rs Add --no-newline option to nu (#12410) 2024-04-09 10:04:00 -04:00
eval_file.rs Fix circular source causing Nushell to crash (#12262) 2024-04-19 09:38:08 +03:00
lib.rs Overhaul the plugin cache file with a new msgpack+brotli format (#12579) 2024-04-21 07:36:26 -05:00
nu_highlight.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
print.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
prompt.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
prompt_update.rs Remove the Value::Block case (#12582) 2024-04-21 07:03:33 +02:00
reedline_config.rs add a few more logging statements for debugging startup (#12316) 2024-03-28 11:27:12 -05:00
repl.rs fix(shell_integration): set window title on startup (#12569) 2024-04-18 20:30:37 -05:00
syntax_highlight.rs Add ListItem type for Expr::List (#12529) 2024-04-18 13:21:05 +02:00
util.rs Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
validation.rs Remove old alias implementation (#8797) 2023-04-07 21:09:38 +03:00