Знаешь, как бывает: сидишь перед терминалом, и нужно быстро глянуть что-то в CSV-шнике или Parquet-файле. Не для того чтобы запускать тяжеленный Excel или IDE, а просто проверить структуру, отфильтровать пару строк... Раньше это было такой рутиной, ну, знакомая история. А потом я наткнулся на Tabiew — и всё изменилось. Серьёзно.
Tabiew — это легкое TUI-приложение для работы с табличными данными. TUI, то есть Text-based User Interface. Представь себе что-то вроде Midnight Commander или Vim, но заточенное specifically под таблицы. Оно умеет читать кучу форматов: CSV, TSV, Parquet, JSON, Arrow и даже Sqlite . И самое главное — всё это происходит прямо в терминале, без лишних телодвижений. Просто вводи tw housing.csv, и файл открывается. Мгновенно. Понимаешь, это та самая скорость, которой не хватает в графических тулзах.
Проект начинался как хобби, но... сообщество подхватило, и теперь там есть вики-документация с внятными объяснениями и рекомендациями . Это вообще отдельный разговор — как здорово, когда open-source проект не заброшен, а живёт и развивается. Сообщество ведь часто решает, выживет проект или нет.
Ну ладно, с тем что это такое, вроде разобрались. Давай копнём глубже. Вот за что я лично его полюбил — это навигация. Управление полностью вим-подобное, что для терминальных ребят как родной язык. j и k чтобы двигаться вверх-вниз, h и l — влево-вправо. Ctrl+f и Ctrl+b для пролистывания страниц. Если ты хоть раз работал в Vim, то чувствуешь себя как дома. А если нет... ну, пара минут привыкания, и ты уже летаешь по таблицам как угорелый. Ещё есть крутая фича — sheet view. Нажимаешь Enter на строке, и она разворачивается на весь экран, если не влезает. Очень удобно, когда колонок много и они широкие .
Но вот где начинается настоящая магия — это работа с данными. Ведь Tabiew поддерживает SQL. Да-да, тот самый настоящий SQL. Не какой-то урезанный синтаксис, а полноценные запросы. Хочешь выбрать из housing.csv все дома дороже 500 тысяч с минимум четырьмя спальнями? Без проблем: Q SELECT * FROM housing WHERE price > 500000 AND bedrooms >= 4 . Всё срабатывает моментально. Результаты можно либо отобразить в текущей вкладке, либо — что особенно круто — открыть в новой. Это же просто праздник какой-то для аналитика или разработчика, который постоянно ковыряется в данных.
А ещё есть inline-команды — что-то вроде упрощённого SQL прямо внутри интерфейса. S price, area чтобы выбрать только эти колонки. F price > 20000 чтобы отфильтровать. O area чтобы отсортировать. Всё это можно чейнить, строя такие себе конвейеры обработки . Понимаешь, это как бы мощь SQL, но без необходимости помнить каждый раз точный синтаксис. Очень интуитивно.
Работа с несколькими файлами тоже реализована элегантно. Можно открыть кучу CSV-шек сразу: tw *.csv. Каждый файл будет в своей вкладке. Переключаться между ними — Shift+h и Shift+l. Или t чтобы вызвать боковую панель со списком всех открытых таблиц . Удобно, когда нужно сравнить данные из разных источников или что-то быстро подглядеть.
Кстати о данных... Tabiew умён. Он пытается угадать типы данных в колонках. Цифры распознаёт как числа, даты как даты. Но если что — всегда можно указать явно при запуске: tw housing.csv --infer-types int float date . Или вообще сказать --no-type-inference чтобы всё читалось как строка. Гибко. Это важно, потому что от типов данных зависит и сортировка, и фильтрация. Ошибиться — и всё, результат не тот.
А ещё там есть поиск. Нажимаешь / — включается fuzzy-поиск по всем колонкам. Вводишь что-то — и таблица тут же фильтруется в реальном времени. Нашёл что нужно — Enter, фильтр применяется. Нет — Esc, и всё как было . Мелочь, а приятно.
Ну и куда же без визуализации. Да, в терминале! Есть команды scatter и hist для построения скаттерплотов и гистограмм . Конечно, это не Power BI, но для быстрого понимания распределения данных или наличия выбросов — более чем достаточно. Например, hist price покажет тебе распределение цен на дома. Всё в псевдографике, прямо в терминале. Выглядит стильно, особенно с тёмными темами — Tokyo Night или Catppuccin Mocha .
Таблицы — это, конечно, хорошо. Но данные ведь нужно не только читать, но и куда-то передавать. Tabiew умеет экспортировать результаты в тех же форматах: CSV, Parquet, JSON... А ещё — что меня особо порадовало — можно отправить данные прямо в буфер обмена командой export csv $clipboard . Мелочь, а какая удобная. Не нужно промежуточных файлов.
Проект живёт. Выходят новые версии. Совсем недавно, в v0.8.2, обновили интерфейс, сделали его более современным и отзывчивым, добавили историю команд, горизонтальную прокрутку таблиц и те самые тёмные темы . Чувствуется, что автор — shshemi — не забросил своё детище, а развивает его. И сообщество подтягивается.
Кому это вообще может быть полезно? Ну, очевидно, data scientists и аналитикам, которые много работают с сырыми данными. Разработчикам, которым нужно быстро проверить содержание сгенерированного файла перед загрузкой в базу. Админам, которые мониторят логи в табличном формате. Да вообще anyone, кто хоть раз сталкивался с необходимостью быстро что-то найти в таблице без лишних кликов и ожиданий.
Понимаешь, в чём его главное очарование? Tabiew не пытается быть монстром на все случаи жизни. Он решает одну задачу — просмотр и простой анализ таблиц — но делает это блестяще. Он быстрый, легковесный и при этом невероятно мощный благодаря интеграции с SQL. Это тот самый инструмент, который, попробовав раз, уже не хочешь отпускать.
В мире, где нас окружают тяжеловесные GUI-приложения, которые грузятся по полминуты и съедают гигабайты оперативки, такие проекты как Tabiew — это глоток свежего воздуха. Они напоминают, что эффективность и элегантность часто кроются в простоте. Ну и конечно, это ещё один повод никогда не выходить из терминала. А то вдруг ты пропустишь что-то интересное!
Источник: https://github.com/shshemi/tabiew