Skip to content

Latest commit

 

History

History
218 lines (149 loc) · 12.7 KB

File metadata and controls

218 lines (149 loc) · 12.7 KB
VisiLens Logo

VisiLens

Excel для разработчиков

Открывайте миллионы строк за секунды. Локально, молниеносно, удобно.

Высокопроизводительный веб-интерфейс для анализа наборов данных с локальным выполнением. Мгновенно просматривайте и фильтруйте файлы CSV, Parquet, Excel и JSON, используя мощь VisiData.

License: MIT Python 3.10+ VisiData Engine FastAPI React PRs Welcome PyPI

English简体中文Español日本語Русский

ВозможностиУстановкаИспользованиеАрхитектураВклад в проект

VisiLens Demo

🚀 Почему стоит выбрать VisiLens?

Анализ данных не должен означать написание шаблонного кода на Pandas или долгую загрузку тяжеловесных табличных процессоров вроде Excel. VisiLens — это современный вьюер CSV и эксплорер Parquet, сочетающий raw-скорость VisiData с легковесным веб-интерфейсом.

  • ⚡️ 1 млн строк за 2 секунды: Работает на высокооптимизированном движке VisiData.
  • 🔒 Полностью локально: Ваши данные никогда не покидают ваш компьютер. Никаких загрузок в облако.
  • 🛠 Zero config: CLI-ориентированный workflow: передали данные, проанализировали, вернулись к коду.
  • 🔌 Поддержка 50+ форматов: CSV, TSV, JSON, Parquet, Excel, SQLite и более 50 других форматов.

✨ Возможности

  • Мгновенная визуализация данных: Просто запустите visilens data.csv, чтобы мгновенно визуализировать большие наборы данных.
  • Сортировка и фильтрация на стороне бэкенда: Выполняйте сложные запросы к миллионам строк, используя движок VisiData.
  • Легкая таблица данных: Виртуализированная таблица на основе React для плавной прокрутки.
  • Нулевая конфигурация: Не требуется настройка базы данных. Работает как автономный вьюер CSV/Parquet.

📂 Поддерживаемые форматы

VisiLens использует загрузчики VisiData для поддержки широкого спектра форматов «из коробки»:

  • Табличные: .csv, .tsv, .xlsx (Excel), .parquet
  • Структурированные: .json, .jsonl, .yaml
  • Базы данных: .sqlite, .db
  • Код: .pcap (Wireshark), .xml, .html таблицы

📊 Бенчмарки

Производительность — наш приоритет. Вот как VisiLens сравнивается при открытии тестового набора данных CSV из 1 000 000 строк на стандартном MacBook Air (M2).

Инструмент Время загрузки (1M строк) Потребление памяти Интерактивная сортировка
VisiLens ~1.7с Минимальное (< 50MB всего) Мгновенно (Бэкенд: < 0.4с)
Excel > 30с (Часто падает) Высокое (Блокирует RAM) Медленно/Не отвечает
GUI на основе Pandas > 15с (Холодный старт) Высокое (Весь DF в RAM) Вяло (Без виртуализации)
Jupyter (print df) Быстро Среднее Статический текст

Тестовый набор данных: 1M строк, 3 столбца (смешанные типы). Результаты получены на MacBook Air M2 в реальных условиях разработки.

📦 Установка

VisiLens доступен как пакет Python.

pip install visilens

Примечание: VisiLens требует Python 3.10 или выше.

💻 Использование

Интерфейс командной строки

Основной способ использования VisiLens — через командную строку.

# Открыть CSV файл
visilens data.csv

# Открыть Parquet файл
visilens large-dataset.parquet

# Открыть Excel файл
visilens spreadsheet.xlsx

# Запустить без автоматического открытия браузера
visilens data.json --no-browser

# Указать пользовательский порт
visilens data.csv --port 9000

Веб-интерфейс

После запуска VisiLens открывается в вашем браузере по умолчанию (обычно http://localhost:8000).

  1. Просмотр данных: Эффективно прокручивайте ваш набор данных.
  2. Сортировка: Нажимайте на заголовки столбцов для сортировки по возрастанию/убыванию.
  3. Фильтрация: Используйте поля ввода фильтра для поиска внутри столбцов.
  4. Загрузка новых данных: (Скоро) Перетаскивайте файлы прямо в окно.

🏗 Архитектура

VisiLens построен на надежном современном стеке, разработанном для производительности:

  • Бэкенд: Сервер FastAPI связывает VisiData и браузер.
  • Коммуникация: WebSockets передают срезы данных по запросу.
  • Фронтенд: Сетка React рендерит только то, что вы видите.

Диаграмма архитектуры

🗺 Дорожная карта

Мы активно работаем над тем, чтобы сделать VisiLens идеальным локальным помощником по данным.

  • v0.1: Основной движок, виртуальная прокрутка, сортировка, фильтрация.
  • Интеграция с Jupyter: Запуск VisiLens прямо из ячейки ноутбука (visilens.view(df)).
  • Загрузка файлов перетаскиванием
  • Графики: Быстрые гистограммы и диаграммы рассеяния через Vega-Lite.
  • Редактирование: Редактирование ячеек и сохранение изменений обратно в CSV/Parquet.
  • Поддержка SQL: Прямое подключение к SQLite/Postgres/DuckDB.

🛠 Разработка

Хотите поучаствовать в разработке? Отлично! Вот как настроить среду разработки.

Предварительные требования

  • Python 3.10+
  • Node.js 18+
  • npm или pnpm

Настройка

  1. Клонировать репозиторий

    git clone https://github.com/PStarH/VisiLens.git
    cd VisiLens
  2. Настройка бэкенда

    # Создать виртуальное окружение
    python -m venv .venv
    source .venv/bin/activate  # или .venv\Scripts\activate в Windows
    
    # Установить зависимости
    pip install -e ".[dev]"
  3. Настройка фронтенда

    cd frontend
    npm install
  4. Запуск локально

Терминал 1 (Бэкенд):

uvicorn backend.main:app --reload --port 8000

Терминал 2 (Фронтенд):

cd frontend
npm run dev
  1. Сборка ассетов фронтенда (опционально)

Если вы предпочитаете запускать только Python CLI (без отдельного сервера разработки Vite), вы можете собрать фронтенд один раз:

cd frontend
npm run build

Это создаст производственный бандл в frontend/dist/, который копируется в vdweb/static/ для релизов. Конечные пользователи просто запускают:

visilens path/to/data.csv

🤝 Вклад в проект

Для контрибьюторов: где что находится

  • Пакет Python (vdweb/): Это устанавливаемый пакет, публикуемый в PyPI. Точки входа CLI visilens / visilens обе разрешаются в visilens.cli:main, как настроено в pyproject.toml.
  • Бэкенд для разработки (backend/): Отдельное приложение FastAPI, используемое только для локальной разработки (uvicorn backend.main:app). Оно зеркалирует поведение упакованного бэкенда, но не является тем, что пользователи импортируют при установке visilens.
  • Основная логика: Слой доступа к данным на базе VisiData находится в vdweb/core.py (и зеркалируется в backend/core.py для приложения разработки). Если вы хотите изменить способ загрузки/сортировки/фильтрации данных, начните здесь.

Типичный рабочий процесс контрибьютора

  1. Редактируйте бэкенд / основную логику в vdweb/ (и обновляйте backend/, если необходимо для паритета разработки).
  2. Запускайте бэкенд разработки + фронтенд локально, как описано в Разработка.
  3. Если вы меняете приложение React и хотите, чтобы эти изменения были отправлены, запустите npm run build в frontend/, чтобы бандл, который будет скопирован в vdweb/static/, был актуальным.

📄 Лицензия

Этот проект лицензирован под лицензией MIT - см. файл LICENSE для подробностей.


Сделано с ❤️ PStarH и сообществом Open Source.

Этот README был переведен ИИ и не был проверен. Не стесняйтесь отправлять PR для его улучшения.