LINUX.ORG.RU

Broot v1.0.2 (консольная утилита для поиска и манипуляции с файлами)

 , ,

Broot v1.0.2 (консольная утилита для поиска и манипуляции с файлами)

1

3

Консольный файловый менеджер, написанный на языке rust.

Особенности:

  • Предприняты меры для комфортного просмотра больших каталогов.
  • Поиск файлов и каталогов (используется нечеткий поиск).
  • Манипуляция файлами.
  • Есть многопанельный режим.
  • Предварительный просмотр файлов.
  • Просмотр занимаемого места.

Лицензия: MIT
Установленный размер: 5,46 MiB

В зависимостях gcc-libs и zlib.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Хочу такой же но на swift

anonymous
()

Выглядит красиво, работает быстро. Моя прошлая попытка использовать broot имела место примерно полгода назад, стоит отдать должное, пользоваться стало действительно приятнее.

К минусам: при наборе поискового запроса зависает после каждого 1-2 символов. А еще у него абсолютно деревянное управление, даже у mc более удобное.

Siborgium ★★★★★
()
Ответ на: комментарий от RazrFalcon

Это до strip?

Не знаю, выполнялся ли при пакетировании strip, но это уже финальный размер, при установке бинарного пакета.

greenman ★★★★★
() автор топика
Последнее исправление: greenman (всего исправлений: 1)

А чем превьюшка рисуется? Или это встроенная функция?

gill_beits ★★★★
()

Название намекает, конечно ;) Кто ставил? Сколько это чудо жрёт ресурсов и как реальзована 2х-панельность например, делением рабочего пространства на одном экране или же как у наркоманов - вкладками?!

anonymous
()
Ответ на: комментарий от Siborgium

Если насчёт минусов это всё так на текущий момент, тогда это печально.

anonymous
()
Ответ на: комментарий от anonymous

как реальзована 2х-панельность

По ссылке в ОП немало скриншотов. И вообще с документацией неплохо.

делением рабочего пространства на одном экране

Да, делением. Можно разделить более, чем на две панели.

greenman ★★★★★
() автор топика
Последнее исправление: greenman (всего исправлений: 1)

напоминает templeos. погуглите.

в тегах не хватает «осеннее обострение».

anonymous
()

даже смотреть не буду, пока не перепишут на rust

anonymous
()

управление для инопланетян

slyjoeh ★★★
()
Ответ на: комментарий от Crocodoom

Это костыль. Но вообще в некоторых терминалах есть поддержка sixel, погугли если интересно, в т. ч. и на ЛОРе.

EXL ★★★★★
()

Каждый начинающий программист обязан написать файловый менеджер и плеер.

anonymous
()

Особенности:

С таким функционалом тянет аж на хорошую лабораторную работу студента-программиста.

Давно ли в Линуксе всё так плохо, что мы радуемся появлению ПО такого уровня?

Alve ★★★★★
()
Ответ на: комментарий от anonymous

Вы там киргизы что-ли?

Тебя действительно интересует национальность авторов или это просто наезд?

sena ★★
()
Ответ на: комментарий от Alve

Это быстрый интерактивный tree, как бы. Давно пора такой иметь.

Правда, «Установленный размер: 5,46 MiB» для интерактивного tree — чудовищно.

wandrien ★★
()
Ответ на: комментарий от RazrFalcon

В нем 200 крейтов разной степени жирности. Собрал сейчас из сырцов, стрипнул, сравнил с тем, что в репозиториях арча. Как-то так:

$ exa $(which broot) -al
.rwxr-xr-x 5.7M root  1 Oct  9:20 /usr/bin/broot
$ exa target/release/broot -al
.rwxr-xr-x 7.6M siborgium  5 Oct 18:31 broot
$ strip target/release/broot
$ exa target/release/broot -al
.rwxr-xr-x 5.8M siborgium  5 Oct 18:31 broot

Собирал на

stable-x86_64-unknown-linux-gnu (default)
rustc 1.46.0 (04488afe3 2020-08-24)
Siborgium ★★★★★
()

Консольный файловый менеджер

посмотрел на скриншот

скорее уж фейловый менеджер

eternal_sorrow ★★★★★
()

системный ЯП (тм) во все поля

olelookoe ★★★
()

А прикольно было бы запилить хранение чексумм из выбранных директорий + опционально хранить мету по их кол-ву/составу. Чтобы в случае подозрения на «похакали» было ясно куда копать с одного взгляда.

phoen ★★
()
Ответ на: комментарий от RazrFalcon

Ну такое себе для какого-нибудь /usr/bin/* например, для конфигов то норм.

phoen ★★
()
Ответ на: комментарий от Siborgium

Вполне норма с учётом того, что все либы статично слинкованы и исполняемый файл вполне самодостаточен

anonymous
()
Ответ на: комментарий от anonymous

Для сравнения: mc сейчас запросил 55 МБ зависимостей :)

anonymous
()

Ликбез по размерам бинариков в Rust.

% cat hello.rs
fn main() {
    println!("Hello, Rust!");
}

Отладочная сборка

% rustc -C debuginfo=2 -C opt-level=0 -o hello hello.rs
% du -bhs hello
3.1M	hello

% strip hello
% du -bhs hello
279K	hello

Релизная сборка

% rustc -C debuginfo=0 -C opt-level=3 -o hello hello.rs
% du -bhs hello
3.1M	hello
% strip hello
% du -bhs hello
279K	hello

Релизная сборка с LTO и в один поток.

% rustc -C debuginfo=0 -C opt-level=3 -C lto=fat -C codegen-units=1 -o hello hello.rs
% du -bhs hello
1.4M	hello
% strip hello
% du -bhs hello
255K	hello

Жирно, что аж плакать хочется, да? У Rust [пока] нет стабильного ABI, поэтому все библиотеки линкуются по дефолту статически. Но технически никто не мешает совершить линковку динамически.

Релизная сборка в один поток с предпочтением динамической линковки (Включая стандартную библиотеку).

% rustc -C debuginfo=0 -C opt-level=3 -C codegen-units=1 -C prefer-dynamic=on -o hello hello.rs
% du -bhs hello
17K	hello
% strip hello
% du -bhs hello
14K	hello

14K!

Ровно столько же весит этот ваш хеллоуворлд на C:

% cat hello.c
#include <stdio.h>

int main() {
	printf("Hello, C!");
}

% gcc -O2 -o hello hello.c
% du -bhs hello
16K	hello

% strip hello
% du -bhs hello
14K	hello
anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

Слинкуем glibc статически)0

% gcc -O2 -static -o hello hello.c
% ldd hello
	not a dynamic executable
% du -bhs hello
750K	hello

% strip hello
% du -bhs hello
679K	hello
anonymous-angler ★☆
()

И что же консольного в этом просмотрщике фотографий.

tommy ★★★★★
()

В роот мне нооги!

anonymous
()
Ответ на: комментарий от Siborgium

В нем 200 крейтов разной степени жирности

Карго карго, кричали они мастурбируя вприсядку. Ну жрите теперь.

anonymous
()
Ответ на: комментарий от anonymous

О, в полку «слышу звон, не знаю где он» прибыло. И чем же 200 маленьких (Скажем < 500-1000 LOC) standalone-библиотек хуже жиробасиков, вроде OpenSSL или Boost, которые ещё и CMake-костылями нормально не собрать?

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

Для сабжевой фигни нужен openssl или boost? Не смеши мои тапки. Для чего-то более серьезного твой карго притащит 2000 крейтов в том числе обертки вокруг десятка дырявых сишных библиотек.

anonymous
()

Попробовал, под виндой, на мой взгляд неудобный.

anonymous
()
Ответ на: комментарий от anonymous

Не думаю. Поинт не в этом. А в подходах к разработке. Чем один монолит лучше кучи маленьких библиотек? И да, притащит. Может не 2000, может 4000 - дальше что? (На практике не видел больше 300)

Напоминаю 2 важных факта:

  1. Многие крейты объединены в воркспейсы.
    • Например. 15 крейтов, 1 воркспейс. Так же можно обратить внимание, что та же организация хостит ещё несколько воркспейсов с шифрами. Итого: 1 организация - несколько десятков-сотен крейтов.
    • Противовес Одна организация - одна, очень жирная, библиотека. Вот я и спрашиваю, чем подход 1 хуже подхода 2?
  2. Многие крейты - генераторы кода и в конечном бинарике от них не остаётся вообще ничего. Например. Всё что делает - упрощает написание имплементаций для std::error::Error и std::fmt::Display.
anonymous-angler ★☆
()

Проверено: Shaman007

Ох щи

upcFrost ★★★★★
()

неудобный настолько, что у меня аж штаны подвернулись и смузи захотелось

bernd ★★★★★
()

несмотря на то, что размер бинарника вызывает некоторые вопросы, мне в целом понравилось, по крайней мере первое впечатление

у меня от его использования по сравнению с vifm и ranger такое же ощущение легкости при выполнении тех же самых действий, как если сравнивать fish с bash и zsh

actionless ★★★★★
()
Ответ на: комментарий от actionless

5Мб для чего-то вроде AppImage, я считаю, - по божески. Плюс в него включено несколько цветовых схем, несколько десятков определений синтаксиса для разных ЯП (syntect). Если смущает количество, то нужно просто понимать чего там «215 штук». Из того что я вижу, там подавляющее большинство - ОЧЕНЬ маленькие крейты.

anonymous-angler ★☆
()
Ответ на: комментарий от EXL

в некоторых терминалах есть поддержка sixel

И не только. Terminology и kitty, например, умеют JPEG'и, PNG и т.д.

saahriktu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.