No results
1
Architektur und Svelte5
veitscherbub edited this page 2026-09-02 18:49:55 +02:00
🏛️ Architektur, Svelte 5 & Go Single-Binary
Clack-Studio ist als hybrides System aus einem extrem schnellen Go-Backend und einem modernen, reaktiven Svelte 5 Frontend aufgebaut.
1. Architekturübersicht
graph TD
subgraph Frontend["Svelte 5 + Vite (Modular & Reaktiv)"]
APP["App.svelte (Workbench Grid)"]
APP --> HB["HeaderBar.svelte (Metriken & Theme-Picker)"]
APP --> MD["MatrixDisplay.svelte (Canvas 32x32 ab 0x03C0 / 64x64)"]
APP --> FP["Frontpanel.svelte (6x LED-Bars & Lampen)"]
APP --> TC["TransportControls.svelte (RUN, PAUSE, STEP, Speed)"]
APP --> BS["BasicStudio.svelte (CodeMirror 6 Editor)"]
APP --> MS["MachineCodeStudio.svelte (Loader & Konverter)"]
APP --> DA["Disassembler.svelte (Live RAM Trace)"]
APP --> RM["RamHeatmap.svelte (1024-Wort Matrix)"]
APP --> LA["LogicAnalyzer.svelte (Zyklustabelle & CSV)"]
ST_CPU["cpuStore.svelte.js ($state)"]
ST_SET["settingsStore.svelte.js ($state)"]
AUDIO["relayAudio.js (Acoustic Synth)"]
end
subgraph GoBackend["Go Server (clack-studio)"]
EMBED["//go:embed frontend/dist/*"]
API["REST API (/api/compile, /api/flash, /api/ports)"]
SIM["16-Bit Relais-Emulator Core"]
end
Frontend -->|HTTP / Embed| GoBackend
2. Warum Svelte 5?
- Zero Virtual DOM Overhead: Svelte 5 verwendet native
$state-Runes. Bei 60 Hz Simulation wird kein virtueller Baum verglichen, sondern exakt die geänderten LEDs im DOM aktualisiert. - CodeMirror 6: Vollwertiger BASIC-Editor mit Syntax-Highlighting für Schlüsselwörter (
LET,IF,FOR,CLS,PSET,REM), Zahlen und Kommentare. - Single-Binary: Alle kompilieren Frontend-Dateien (
frontend/dist) sind per//go:embedfest in die Go-Binary eingebettet.