Skip to content

Component map ​

The Core repository separates four roles: subsystems, libraries, drivers and executables. All are Rust crates; a Rust module is a language construct, not a separate architectural category.

Where does a component belong? ​

  • Subsystem: owns or coordinates an installed runtime capability with a lifecycle in the assembled Xila instance. The VFS owns the mounted namespace; graphics coordinates LVGL and input state.
  • Library: defines reusable contracts, helpers or implementations that do not need a separate installation/lifecycle. File system defines storage contracts; LittleFS implements them.
  • Driver: adapts a generic capability to a particular platform, as in the browser driver or native driver.
  • Executable: consumes the assembled services as a program, launcher or guest runtime. The WASM executable owns Wasmi execution within WASM and guest/host bindings.

Internal mutable state alone is not evidence of a subsystem: the key is runtime ownership and assembly. Some reusable executable helpers depend on subsystem interfaces without themselves becoming runtime services.

Follow a request ​

A file request starts in an executable, reaches the VFS, uses file-system contracts, then dispatches to a mounted LittleFS instance or device driver.

A WebAssembly guest uses the WASM runtime and bindings owned by the WASM executable. Those adapters pass operations to the same task/VFS/time/graphics subsystem managers used by native executables.

See the architecture overview for lifecycle, dependency and process-global integration details.