Set up a development environment
Set up separate Core, Applications and Platforms workspaces with mise and pinned dependencies.
Xila is now developed in three Rust workspaces. Core owns portable OS libraries; Applications owns official apps and Wasmi; Platforms owns native/browser assembly, hardware drivers, demos and reference images.
All three use mise and Rust with repo-specific tasks. Do not run the old image:native, image:wasm or pages:demo instructions in Core.
Prepare checkouts
Section titled “Prepare checkouts”On a supported x86_64 Debian/Ubuntu Linux development machine:
git clone https://github.com/xila-project/core.gitgit clone https://github.com/xila-project/applications.gitgit clone https://github.com/xila-project/platforms.git
cd coremise trustmise bootstrap packages apply --manager aptmise run deps:npmexport XILA_APPLICATIONS_ROOT="$(realpath ../applications)"export XILA_APPLICATIONS_MANIFEST="$XILA_APPLICATIONS_ROOT/Cargo.toml"export XILA_FONT_CATALOG_ROOTS="$XILA_APPLICATIONS_ROOT"mise run check:allcd ../applicationsmise trustnpm cimise run build:applicationscd ../platformsmise trustmise bootstrap packages apply --manager aptnpm cimise run build:nativeThe three manifests pin dependent Git revisions. Checking out the latest main in each directory does not automatically override those pins. For cross-repository development, generate the explicit Cargo patch file from tools/dev/local_overrides.py rather than editing locked dependencies casually. Do not commit a Cargo.lock regenerated under temporary local patches.
The exact native OS, linker, graphics/font and display dependencies vary by operation. Mise selects task-scoped tool versions and optional mr-boxington caching; MISE_ENV=ci uses separate CI definitions.
Select the repository for the task
Section titled “Select the repository for the task”| What you want to do | Where to run it |
|---|---|
| Portable VFS, Task, Time, Graphics, Network, ABI and device APIs | core |
| WASI applications, Wasmi, graphical/CLI shells, localization of applications | applications |
| Native/browser runtime, Linux/ESP drivers, seed images, OPFS and deployment | platforms |
| Manifest/TAR development packages | package_manager |
| Static community publication declarations | registry |
To assemble a desktop or browser demonstration, build WASI apps first, then point Platforms at them:
cd platformsexport XILA_APPLICATIONS_DIR="$(realpath ../applications/target/wasm32-wasip1/release-wasm)"export XILA_FONT_CATALOG_ROOTS="$(realpath ../applications)"mise run image:nativeFor the browser use image:browser. The CI-only pages:build task can build complete localized demonstrations itself.
Hardware and validation limits
Section titled “Hardware and validation limits”A native Core/Platforms build does not establish ESP32 or Wokwi firmware support. The split still contains legacy ESP driver code needing target-specific validation. Build and flash with the intended ESP-IDF/toolchain, partition and board configuration before claiming hardware support.
Continue with Development commands, native tutorial, and browser tutorial.