Skip to content

About

POLER Edit — суверенный текстовый редактор на Qt6/C++ с интеграцией poler-engine

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

POLER Edit — суверенний текстовий редактор для гігабайтних файлів

Kate-подібний інтерфейс поверх автономного Rust-ядра poler-edit-core (Zero-Copy Piece-Table поверх mmap). Залежності GUI: тільки Qt6 Widgets — ніяких KF6/KParts/Electron. Вся робота з текстом будь-якого розміру відбувається в ядрі; GUI рендерить лише видиме вікно рядків.

Проблема, яку вирішує: звичайні редактори (VS Code, Notepad++, Kate) вішаються на файлах 300–500 МБ, бо завантажують мільйони рядків у RAM. POLER Edit відкриває файли 1–10 ГБ (20+ млн рядків) за ~0.05 с і споживає 20–40 МБ пам'яті — RAM не залежить від розміру файлу.

Для кого: системні адміністратори та DevOps (гігабайтні серверні логи), DBA й дата-аналітики (SQL-дампи 2–5 ГБ, CSV/JSON), фахівці кібербезпеки (SOC/SIEM — мережеві зліпки й логи атак), розробники та звичайні користувачі. Все працює локально, без відправки конфіденційних даних на сервери.


Search Engine v2 (головна фіча цього релізу)

Живий пошук as-you-type без блокування GUI — перші збіги у видимому вікні з'являються за мілісекунди, повний скан гігабайтного файлу йде потоком у фоні:

  • Багатопотоковий SIMD-скан по ownership-блоках снапшота (rayon), перенос збігів через шви piece-table, канонічний non-overlapping фільтр.
  • Пріоритетна фаза вьюпорта: скан спочатку проходить видиме вікно (перші підсвічені збіги — до завершення повного скана).
  • ε — енергія значимості (порт канону poler-engine): ε = κ·(1+ln(1+kw))·Σ(ln N − ln freq)² — квадратична форма рідкості унікальних токенів вікна збігу.
  • Резонанс R(t) = ε_t + ρ·R_{t−1} — IIR-пам'ять потоку збігів, фінальне R видно в статусі після завершення скана.
  • Unicode-скан без UTF-8 валідації (ASCII fast-path + варіанти регістру через канонічні розкладки), колонки збігів — і в символах, і в байтах (виправлено баг v1, де байтові колонки ламали курсор на кирилиці).
  • Пошук не блокує редагування: працює на іммутабельному снапшоті, після правок сесія перезапускається автоматично (debounce 400 мс).

Керування пошуком

Дія Клавіші
Живий пошук (as-you-type) Ctrl+F
Наступний / попередній збіг F3 / Shift+F3 (Enter / Shift+Enter у полі)
Регістр-чутливість кнопка Aa (grep-режим за замовчуванням)
Лічильник збігів панель пошуку: «5/345…» — росте під час скана
Закрити панель Esc

Збірка (Linux)

# 1) Rust-ядро
cd core
cargo build --release

# 2) GUI
cd ..
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
./build/poler-edit

Вимоги: Rust stable, CMake 3.21+, Qt6 Widgets dev, OpenGL dev. Ядро шукається автоматично: POLER_EDIT_CORE → поруч із бінарником → core/target/release/poler-edit-core → ~/.local/bin → PATH.

Windows / macOS / Android (ARM64 APK) збираються автоматично в CI (.github/workflows/release.yml) — артефакти на кожен push у main.

Запуск

poler-edit file.txt huge.log another.md   # кілька вкладок
poler-edit --light                        # світла тема (за замовчуванням темна)

Інше керування

Дія Клавіші
Відкрити / Зберегти Ctrl+O / Ctrl+S
Скасувати / Повернути Ctrl+Z / Ctrl+Y
Копіювати / Вирізати / Вставити Ctrl+C / Ctrl+X / Ctrl+V
vi-командний рядок : або Ctrl+: (:w :q :wq :q! :123)
Масштаб Ctrl+колесо, Ctrl+= / Ctrl+-
Активація Pro Довідка → Активація Pro…

Під час фонової індексації рядків у статусному рядку видно живу швидкість SIMD-підрахунку (GiB/s) — індексація не блокує редагування.

Архітектура

poler-edit (Qt6, тонкий клієнт)
   │  JSON lines over stdio (LSP-стиль), події hits/progress/search_done
   ▼
poler-edit-core (автономний Rust-бінарник, ~/core)
   │  zero-copy mmap piece-table + багатопотоковий SIMD-пошук
   │  + ε-енергія значимості + резонанс R(t) + Ed25519-ліцензії
   ▼
файл будь-якого розміру (RAM не залежить від обсягу)

Ядро повністю ізольоване: його можна тестувати і використовувати без GUI (JSON-протокол через stdio), а GUI-шар не містить жодної логіки тексту.

Ліцензування Pro (підготовлено до монетизації)

  • Free — повний редактор: відкриття/редагування/пошук без лімітів.
  • Pro — періодичні Pro-функції; активація ключа формату PE1-…, підпис Ed25519, валідація повністю офлайн у ядрі (core/src/license.rs); ключ зберігається локально (QSettings).
  • Інструмент видавця: core/target/release/poler-edit-keygen — генерація ключів із секретним насінням видавця (секрет у репозиторії відсутній).

Ліцензія проєкту: POLER Source-Available & Commercial Business License (LICENSE.md).

Обмеження (чесно)

  • Підсвічування синтаксису — у планах.
  • save_as із GUI зберігає в поточний шлях (команда в протоколі вже є).
  • Складний IME-ввід (CJK) не тестувався; кирилиця/латиниця працюють.
  • Заміну файлу на диску під час редагування ядро поки не відстежує.

About

POLER Edit — суверенный текстовый редактор на Qt6/C++ с интеграцией poler-engine

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages