5 функций CLI на Rust для оптимизации привычных инструментов

Одна из основных задач, поставленных сообществом перед Rust,  —  совершенствование популярных инструментов командной строки. Причину этого вы легко поймете, как только разработаете свое первое приложение для командной строки с помощью Rust. Сочетание низкоуровневого языка с такими крейтами, как clap, structopt и console, а также простота публикации и установки крейтов с помощью cargo превращают разработку такого типа программ в сплошное удовольствие.

Рассмотрим пять инструментов командной строки, переписанных на Rust. Каждый из них обладает интересным функционалом, достойным вашего внимания.

bat

Что может быть лучше cat? bat. Хотя, если речь идет о млекопитающих (cat  —  кошка, bat  —  летучая мышь), ничего не имею против обоих представителей этого класса. Но в контексте терминала, сравнивая bat и cat, все же предпочту bat.

bat  —  это команда, которая предназначена для тех же целей, что и встроенная в UNIX cat, но отличается выделением синтаксиса и интегрируется с git, показывая различия в файлах. Замечательная доработка очень распространенного среди разработчиков инструмента!

Кошка против мышки (но не стоит беспокоиться о мышке)

Чтобы установить bat, изучите README или просто следуйте путем, выбранным сообществом Rust:

cargo install bat

ripgrep

ripgrep  —  это невероятно быстрый инструмент. Уже по его названию можно понять: это достойная замена grep. grep  —  невероятно удобный инструмент UNIX для рекурсивного поиска по тексту. ripgrep работает так же, но быстрее.

ripgrep был запущен Эндрю Галлантом и с тех пор приобрел более 300 контрибьюторов на своей странице GitHub. Инструмент поддерживает множество способов кодирования, может быть чувствительным к регистру и нет, следует контенту .gitignores и выполняет многое другое. Чтобы разобраться подробнее, посмотрите бенчмарки, предлагаемые его создателем.

cargo install ripgrep

dust

Если ripgrep превзошел grep по скорости, то dust стал альтернативой du, обойдя предшественника по лаконичности, способности к обобщению и визуализации. Если вы уже использовали du, то знаете, что эта команда является синонимом детального логирования папок и сообщений об отсутствующих разрешениях.

Однако запуск dust позволит вам получить дерево папок высотой во весь экран терминала и даже граф, визуально отображающий использование диска. Один вызов dust обычно дает всю важную информацию без необходимости добавлять флаги и заставлять терминал “утопать” в строках текста.

dust запущен Энди Бутом и уже приобрел более 30 контрибьюторов на GitHub.

cargo install du-dust
Сравнение результатов работы dust и du

bottom

Как вы уже убедились, dust сделал заметный рывок в плане визуализации данных по сравнению с du. Однако bottom достиг еще большего. До такой степени, что я не буду ничего говорить об этом, а просто наглядно продемонстрирую возможности этого потрясающего инструмента.

Демо GIF из GitHub-репозитория bottom

Здесь можно найти руководство по установке и использованию этого инструмента.

cargo install bottom

exa

Бросим вызов королю UNIX (сравнить с которым можно только cd)  —  ls. Немногие команды мы пишем чаще, чем ls. Даже фреймворк oh my zsh предлагает множество псевдонимов, чтобы писать ее еще быстрее, например l и la.

Последний случай  —  единственный, когда я не перешел на новый современный инструмент. Однако вам может очень пригодиться exa благодаря своим дополнительным возможностям, таким как использование цветов для раскраски различных типов файлов и совместимость с Git.

Сравните exa и ls

Как и в случае с другими инструментами, следуйте инструкциям в README или воспользуйтесь cargo.

cargo install exa

Читайте также:

Читайте нас в TelegramVK и Дзен


Перевод статьи SotoEstevez: 5 CLI Tools Made With Rust To Improve Already Popular Tools

Предыдущая статья10 языков программирования, которые пригодятся в 2023 году
Следующая статьяДетальное исследование 3 подводных камней React, с которыми сталкиваются разработчики