Developer preview. Vela, Facet, and Quire are pre-release and in active development — syntax, APIs, and availability may change, and they are not yet generally available.
SStretch Dev Docs
Quire

Performance

Compile benchmarks, incremental caches, watch compilers, scale runs, and safety fuzzing.

Quire performance work has compile-time surfaces: benchmarks, incremental compile, watch compile APIs, generated large-corpus runs, and scale safety fuzzing.

These tools are for tracking compiler and host behavior. They are not runtime dependencies for rendered sites.

Compile benchmark

Run the standard benchmark:

npm run bench:compile

Run a CLI benchmark for a file:

quire bench examples/product.quire --iterations 50 --json

The output format is quire.compile.benchmark and includes cold timing plus incremental timing, cache hits, and cache misses.

Incremental compile

createIncrementalCompiler() caches compiled IR by source file and a deterministic signature of the source text, file path, project schema path, and merged project schema.

The source example used for simple benchmark runs is examples/product.quire:

quire ProductPage {
  model {
    product: Product
    cart: Cart
  }

  route "/products/{product.slug}"
  title product.title

  section hero {
    text eyebrow {
      value product.collection.title
      variant "eyebrow"
    }

When a signature is unchanged, the compiler returns a cloned cached IR document. Returning clones keeps callers from mutating cache state and preserves deterministic output.

buildProject() also accepts an incrementalCache map for hosts that want to reuse compile results across repeated builds.

Watch compile

createWatchCompiler() is the file-backed cache surface for editor and watch-mode hosts. It reads files from disk, loads the same project schema resolution used by the CLI, compiles through the deterministic incremental cache, and reports cache hits and misses per file.

Hosts can call invalidate(file) after deletes or renames, and clear() for a full rebuild.

Scale and fuzz

Scale benchmarks generate deterministic .quire sources in memory and track compiler behavior across thousands of files:

npm run bench:scale
quire bench-scale --files 1000 --iterations 2 --json

Safety fuzzing keeps malformed input contained as diagnostics:

quire bench-safety --cases 1000 --json

Every successfully compiled fuzz document is checked against the safe IR contract. Unexpected exceptions fail the run.