33 lines
1.3 KiB
Plaintext
33 lines
1.3 KiB
Plaintext
@startuml
|
|
skinparam backgroundColor #FFFFFF
|
|
skinparam defaultFontName Arial
|
|
skinparam defaultFontSize 14
|
|
skinparam shadowing false
|
|
top to bottom direction
|
|
title Tessera — implemented components (principal runtime flows)
|
|
component "shell\nwindows / tabs / developer tools" as Shell
|
|
component "runtime/api\nHTTP + queue" as API
|
|
component "runtime/api/worker\nserial VM ownership" as Worker
|
|
component "bridge/ui_bridge\ntypes / native calls / refresh" as Bridge
|
|
component "model\nobjects / mounts / bindings" as Model
|
|
component "render\nlayout / paint / hit / raster" as Render
|
|
component "Aster\nfrontend / compiler / core" as Aster
|
|
component "runtime/io_tasks\nplain-data completion" as IO
|
|
database "NamespaceState\nowned document + frame values" as State
|
|
Shell --> API : serialized input / Console
|
|
API --> Worker : bounded BuildRequest queue
|
|
Worker --> Aster : compile / execute
|
|
Worker --> Bridge : install / refresh / dispatch
|
|
Bridge <--> Model : managed graph + dependencies
|
|
Bridge --> Render : derive frame
|
|
Worker --> State : validate epoch + publish
|
|
State --> Shell : immutable snapshot
|
|
Shell --> Render : compose chrome + rasterize
|
|
Worker <--> IO : request / completion
|
|
note bottom of Model
|
|
Directory groups are not separate crates.
|
|
Imports still cross groups; this is not
|
|
an exhaustive or acyclic import graph.
|
|
end note
|
|
@enduml
|