docs: reorganize into en/ru and add English translation

This commit is contained in:
Glint Dev
2026-07-24 22:04:29 +03:00
parent 938f05f59d
commit 35f92435a3
20 changed files with 4651 additions and 0 deletions

48
docs/ru/README.md Normal file
View File

@@ -0,0 +1,48 @@
# Glint Runtime — документация
(да, пока-что написанное нейросетью. Её объяснений достаточно)
Бэкенд для исполнения скомпилированного байткода (.glbc) Glint UI-фреймворка. Загружает байткод, интерпретирует VDOM, применяет CSS-подобные стили, выполняет Rhai-скрипты и рендерит результат через Iced (native GPU-ускоренный GUI).
## Структура проекта
- `src/main.rs` — точка входа, CLI парсинг
- `src/lib.rs` — публичное API crate'а
- `src/app.rs` — GlintApp: Iced-приложение, update/view
- `src/cli.rs` — CLI команды compile/run
- `src/renderer.rs` — Iced-виджеты: преобразование Element → iced::Element
- `src/perf.rs` — PerfScope: замер производительности по фазам
- `src/interpreter/mod.rs` — Interpreter: загрузка bytecode, VDOM eval
- `src/interpreter/types.rs` — Element, VNode, FlatVDom, Value, InternedStr, Document
- `src/interpreter/style.rs` — StyleSheet, StyleRule, StyleIndex, StyleCache, ComputedStyle
- `src/interpreter/reactive.rs` — ReactiveTracker: граф зависимостей
- `src/interpreter/rhei.rs` — RheiContext: интеграция Rhai скриптов
- `src/interpreter/reader.rs` — Reader: чтение .glbc bytecode
- `src/interpreter/opcodes.rs` — OP_* константы байткода
## Связанные репозитории
- `glt` (компилятор .gltm/.glts → .glbc)
## Ключевые концепции
- **Document** — загруженный .glbc файл: дерево Element'ов, таблица стилей, переменные
- **Element** — узел VDOM: type_name, properties, children, computed_style, element_id, content_hash
- **VDOM** — виртуальное дерево, результат интерпретации байткода
- **StyleSheet** — таблица стилей с индексированным поиском и кэшем computed style
- **ReactiveTracker** — отслеживает зависимости element → variable, dirty_set
- **RheiContext** — компилирует и выполняет Rhai-скрипты, кэширует AST
- **ComputedStyle** — результат применения CSS-правил: ~40 полей (color, padding, font-size, etc.)
## Фазы оптимизации
См. [ARCHITECTURE-IMPROVEMENT-PLAN.md](../ARCHITECTURE-IMPROVEMENT-PLAN.md).
**Реализовано:** фазы 38, 10, 9.19.2 (content_hash, стабильные Iced widget ID).
**Осталось:**
| Фаза | Описание | Оценка ускорения |
|------|----------|-----------------|
| 0 | Профилирование (bench, flamegraph) | — |
| 1 | Типизированные Value в стилях вместо HashMap<String, String> | 23× |
| 2 | String interning для горячих путей | 1.52× |
| 9.3 | Кэш Iced-виджетов по content_hash | 1.52× (render) |