Архитектура
Крейты, JNI-мост и граница между Rust и JVM.
Открыть на GitHubОбновлено 2026-11-11
Верхний уровень
client 26.3 ←→ net (Rust, tokio)
│
├── world, worldgen, redstone, mobs
│
└── JNI bridge ←→ JVM (paper-api + api-impl)
│
└── plugins/*.jarСеть, мир и генерация живут в Rust. JVM не управляет тиком: она получает события и запросы через мост. Если слушателей нет, событие остаётся в Rust.
Крейты
| Крейт | Задача |
|---|---|
protocol | Пакеты 26.3, VarInt, NBT, текстовые компоненты |
net | Соединения, игра, команды, механики, события |
worldgen | Шум, биомы, поверхности, карверы, структуры |
world | Чанки, палитры, Anvil, свет |
data | Встроенные данные игры |
bridge | JVM через JNI и встроенный API |
server | Бинарник, CLI, мастер настройки, консоль, бэкапы |
metrics | Метрики и дашборд |
lab | Сравнение с ванилью и бенчмарки |
bots | Боты-пробы для сверки пакетов |
Паритет с ванилью
- Механики реализуются по байткоду
server.jarи Paper, а не по вики. - Дерево команд сверяется с
reports/commands.json, пакеты — сreports/packets.json. - Рельеф и хеш мира сверяются с ванилью.
chunkwake-labзапускает сценарии на обоих серверах и собирает отчёт с отличиями.
Планы
То, чего пока нет в релизе, но описано в ARCHITECTURE.md:
- STM-тик: Paper-семантика для плагинов при параллельном исполнении;
- динамические острова вместо фиксированных регионов Folia;
- мир как журнал событий с откатом и повтором;
- мост на Panama FFM с общей памятью вместо JNI.
Подробности: ARCHITECTURE.md.