docs: reorganize into en/ru and add English translation
This commit is contained in:
48
docs/ru/README.md
Normal file
48
docs/ru/README.md
Normal 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).
|
||||
|
||||
**Реализовано:** фазы 3–8, 10, 9.1–9.2 (content_hash, стабильные Iced widget ID).
|
||||
|
||||
**Осталось:**
|
||||
| Фаза | Описание | Оценка ускорения |
|
||||
|------|----------|-----------------|
|
||||
| 0 | Профилирование (bench, flamegraph) | — |
|
||||
| 1 | Типизированные Value в стилях вместо HashMap<String, String> | 2–3× |
|
||||
| 2 | String interning для горячих путей | 1.5–2× |
|
||||
| 9.3 | Кэш Iced-виджетов по content_hash | 1.5–2× (render) |
|
||||
Reference in New Issue
Block a user