xtazy Toolchain
dealer manages the local build components needed to build xtazy projects.
xtazy 0.1.0 is not one physical runtime folder. It is a release composition that tells dealer which component versions belong together.
The real installed components are independent:
πkorusttimestd- Rust backend
This lets xtazy releases move independently from Rust backend releases and lets multiple xtazy releases share the same installed component versions when that is valid.
State Layout
Global dealer state lives under ~/.dealer/.
~/.dealer/
│
├── config/
│ └── dealer settings
│
├── xtazy/
│ └── versions/
│ └── <xtazy-version>/
│ └── release descriptor
│
├── piko/
│ └── <piko-version>/
│ └── piko
│
├── rusttime/
│ └── <rusttime-version>/
│
├── std/
│ └── <std-version>/
│
├── rust/
│ └── <rust-backend-id>/
│ ├── bin/
│ │ ├── rustc
│ │ └── cargo
│ └── lib/
│
└── cache/
| Path | Meaning |
|---|---|
~/.dealer/config/ |
Dealer settings such as auto-update state. |
~/.dealer/xtazy/versions/<ver>/ |
xtazy release composition descriptor. |
~/.dealer/piko/<ver>/ |
Installed πko compiler executable version. |
~/.dealer/rusttime/<ver>/ |
Installed Rust-facing support surface version. |
~/.dealer/std/<ver>/ |
Installed xtazy standard library surface version. |
~/.dealer/rust/<backend>/ |
Installed Rust backend used to compile generated Rust. |
~/.dealer/cache/ |
Global download and verification cache. |
xtazy Release Composition
An xtazy release descriptor maps an xtazy release version to concrete component versions.
The canonical file format, signature rule, URL shape, and component hash meaning are defined in xtazy Parts File.
dealer can use an xtazy release only when every referenced component is installed and verified. Incomplete component sets must not be used for builds.
Project Version Selection
Version selection belongs to the project root when the project needs pinning.
Project root syntax is defined in xtazy Projects.
Pinned and unpinned update behavior is defined in Install And Update.
Dealer Settings
Dealer settings are stored under ~/.dealer/config/.
This is internal dealer state, not a user project manifest.
Settings include:
| Setting | Meaning |
|---|---|
self auto-update |
Whether dealer may update itself automatically. |
xtazy auto-update |
Whether xtazy build components may update automatically. |
| last update check times | Cache timestamps for update checks. |
The exact on-disk format is an implementation detail of dealer.
Project behavior belongs in app.x or package.x, not in JSON/TOML/YAML project manifests.
Rust Backend
Rust is a backend target for xtazy, not a prerequisite the user should manage manually.
The Rust backend is stored separately from xtazy components so Rust backend updates and xtazy component updates can move independently.
Example:
~/.dealer/rust/default-2026-07/
bin/
rustc
cargo
lib/
dealer uses the Rust backend referenced by the xtazy release composition used for that build to compile generated Rust from the project-local .dealer/rust/ folder.
Update
dealer xtazy update updates dealer-managed xtazy build components.
dealer xtazy auto-update <on|off|status> controls automatic xtazy component updates.
The full install/update decision flow is defined in Install And Update.
Cache
~/.dealer/cache/ is global dealer cache.
It may contain downloaded metadata, downloaded artifacts, verified temporary files, and reusable package/tooling data.
Project-local generated state is not stored here. Project-local state lives under the project .dealer/ folder.
dealer cache clean removes global cache data.
It does not remove installed xtazy release compositions, installed πko, installed rusttime, installed std, or installed Rust backends.
Locking
Operations that mutate global dealer state must use file locking under ~/.dealer/.
This includes:
| Operation | Protected state |
|---|---|
| xtazy tooling update | ~/.dealer/xtazy/, ~/.dealer/piko/, ~/.dealer/rusttime/, ~/.dealer/std/, ~/.dealer/rust/ |
| package download or extraction | ~/.dealer/cache/ |
| cache clean | ~/.dealer/cache/ |
Locking must prevent two concurrent dealer processes from extracting, replacing, or deleting the same global cache/tooling path at the same time.
dealer clean [project] removes project-local generated state and product/.