Одна из основных задач, поставленных сообществом перед 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
bottom
Как вы уже убедились, dust
сделал заметный рывок в плане визуализации данных по сравнению с du
. Однако bottom достиг еще большего. До такой степени, что я не буду ничего говорить об этом, а просто наглядно продемонстрирую возможности этого потрясающего инструмента.
Здесь можно найти руководство по установке и использованию этого инструмента.
cargo install bottom
exa
Бросим вызов королю UNIX (сравнить с которым можно только cd
) — ls
. Немногие команды мы пишем чаще, чем ls
. Даже фреймворк oh my zsh предлагает множество псевдонимов, чтобы писать ее еще быстрее, например l
и la
.
Последний случай — единственный, когда я не перешел на новый современный инструмент. Однако вам может очень пригодиться exa благодаря своим дополнительным возможностям, таким как использование цветов для раскраски различных типов файлов и совместимость с Git.
Как и в случае с другими инструментами, следуйте инструкциям в README или воспользуйтесь cargo.
cargo install exa
Читайте также:
- Rust: первые впечатления
- Разработка макроса Rust для автоматического написания шаблонного кода SQL
- Покрытие кода в Rust
Читайте нас в Telegram, VK и Дзен
Перевод статьи SotoEstevez: 5 CLI Tools Made With Rust To Improve Already Popular Tools