Инструменты21 июля 2026 г., 17:46 МСК🤖 Auto

Nushell 0.72: Структурированный shell с поддержкой плагинов и JSON-RPC

Nushell достиг статуса MVP, представив новую архитектуру работы с данными как таблицами и записями, а также расширенную систему плагинов на базе JSON-RPC.

Баннер новости 4048

Статус проекта и философия данных

Проект Nushell (Nu) официально достиг уровня Minimum-Viable-Product (MVP). Команда заявляет, что многие пользователи уже используют его как основную оболочку (daily driver), хотя некоторые команды могут оставаться нестабильными. В версии 0.72.0 (указана в метаданных Cargo.toml) акцент сделан на отказе от обработки данных как «сырого текста» в пользу структурированных моделей.

В отличие от традиционных Unix-оболочек, Nushell рассматривает каждый вход как структурированный объект. Например, команда ls возвращает не текст, а таблицу строк, где каждая строка — это объект с полями (имя, тип, размер, дата изменения). Это позволяет применять фильтрацию и трансформации напрямую к полям данных.

Пайплайны и работа со структурой

Ключевая особенность Nu — использование пайплайнов для передачи структурированных данных между командами. Команды делятся на три категории:

  • Производители потока (Stream producers): например, ls, ps.
  • Фильтры (Stream filters): например, where, select.
  • Потребители (Sinks): например, table для отображения, save для записи.

По умолчанию вывод пайплайна отображается в виде таблицы через команду table, что делает интерфейс интуитивным для анализа данных.

Примеры работы с данными

Ниже приведены примеры того, как Nushell обрабатывает данные в сравнении с традиционным подходом:

Команда / Контекст Результат / Структура Примечание
ls | where type == "dir" Таблица с колонками: #, name, type, size, modified Фильтрация директорий с сохранением структуры таблицы
ps | where cpu > 10 Таблица процессов: pid, name, cpu, mem, virtual Пример: Slack.exe потребляет ~16% CPU
open Cargo.toml | get package.version Значение: 0.72.0 Прямое извлечение поля из TOML-файла как из объекта

Архитектура плагинов и JSON-RPC

Nushell поддерживает плагины, которые расширяют функциональность через простой протокол JSON-RPC. Плагины должны следовать соглашению об именовании nu_plugin_* и быть доступны в PATH.

Существует два типа взаимодействия:

  1. Фильтры (Filters): данные поступают по одному элементу, плагин может возвращать поток данных обратно через stdin/stdout.
  2. Потребители (Sinks): плагину передается полный вектор данных, он имеет полный доступ к stdin/stdout для произвольной обработки.

Кроссплатформенность и установка

Проект официально поддерживает Windows, macOS и Linux. Установка доступна через популярные менеджеры пакетов:

  • Linux/macOS: brew install nushell
  • Windows: winget install nushell

Проект интегрируется с такими инструментами, как starship, oh-my-posh, zoxide и direnv, обеспечивая современный UX, ожидаемый от CLI-инструментов 2022 года и новее.

Источник: Github ↗