docs: ticket 05 (script-engine-research) aufloesen, ticket 13 graduieren
This commit is contained in:
29
.scratch/rustkeep-1.0/issues/13-script-engine-waehlen.md
Normal file
29
.scratch/rustkeep-1.0/issues/13-script-engine-waehlen.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# 13 — Script-Engine wählen und Sandbox härten
|
||||
|
||||
Type: grilling
|
||||
Status: open
|
||||
Blocked by: 01
|
||||
|
||||
## Question
|
||||
|
||||
Rhai oder mlua — und wie wird die gewählte Engine abgedichtet?
|
||||
|
||||
Ticket 05 hat die Fakten geliefert und Rhai empfohlen. Die Entscheidung steht noch aus, und sie hängt
|
||||
bewusst an 01: Reden Scripts ausschließlich über das Effekt-Vokabular, ist die Wahl später umkehrbar;
|
||||
reichen sie tiefer in den Game-State, ist sie es nicht. Zu klären:
|
||||
|
||||
- **Ist das Effekt-Vokabular die einzige Schnittstelle für Scripts?** Wenn ja, ist die Engine-Wahl eine
|
||||
Implementierungsentscheidung statt einer Architekturentscheidung.
|
||||
- **Zielgruppe**: „gut moddbar für einen kleinen Kreis" spricht für Rhai, „möglichst viele fremde Mods"
|
||||
für Lua. Das ist die Frage, an der die Empfehlung kippt.
|
||||
- **Vertraust du fremden Mods?** Bei feindlichen Mods ist Luau der einzige echte Sandbox — zum Preis
|
||||
einer C++17-Toolchain und eines Lua-*Dialekts*.
|
||||
- **Härtungs-Checkliste** für die gewählte Engine festlegen. Bei Rhai mindestens: `FileModuleResolver`
|
||||
abschalten, `eval()` deaktivieren, CPU- und Memory-Limits setzen. Bei mlua: niemals `Lua::new()`,
|
||||
sondern `new_with` mit ausgewählten Libs, `load`/`loadstring`/`dofile`/`require` entfernen,
|
||||
`ChunkMode::Text` erzwingen.
|
||||
- **Wie geht das Projekt mit den Rhai-Risiken um** — Bus-Faktor 1, Unsoundness-Issue #894 seit 2024,
|
||||
`smartstring` unmaintained (RUSTSEC-2026-0249)? Akzeptiert, beobachtet, oder Ausschlusskriterium?
|
||||
- **Wann fällt die Entscheidung endgültig** — jetzt, oder erst wenn Mod-Stufe (c) gebaut wird?
|
||||
|
||||
Ergebnis: gewählte Engine mit Begründung, Härtungs-Checkliste, und die Regel, was Scripts sehen dürfen.
|
||||
Reference in New Issue
Block a user