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 — мережеві зліпки й логи атак), розробники та звичайні користувачі. Все працює локально, без відправки конфіденційних даних на сервери.
Живий пошук 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 |
# 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-шар не містить жодної логіки тексту.
- 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) не тестувався; кирилиця/латиниця працюють.
- Заміну файлу на диску під час редагування ядро поки не відстежує.