flixw

A repository-local bootstrap for the Flix compiler.

Version 0.24.0 · source on GitHub

./flixw <verb> downloads, digest-verifies, caches and executes an unmodified stock flix.jar pinned by the project. It is an experimental, third-party, opt-in tool — not a Flix fork, plugin, or official product.

What is published here

lock.toml schema JSON Schema 2020-12 for .flixw/lock.toml. Every generated lock points here. Stage 0 API docs Javadoc for flixw.java, private members included.

The lock schema

Every lock ./flixw pin writes opens with a Taplo directive naming the schema, so an editor validates it with nothing configured per project:

#:schema https://wstein.github.io/flixw/schema/lock-v1.schema.json

v1 is the lock format's major version, not the wrapper's. It moves only when a lock an older flixw wrote would stop being readable; lock.schema.json is an alias for the current one.

The schema is rendered from the same list stage 0 validates the lock against, so the two cannot disagree. ./flixw wrapper --schema prints it — offline, and with no project needed — if you would rather validate against a copy you carry yourself.

Getting started

curl -fsSLO https://github.com/wstein/flixw/releases/latest/download/flixw.java
java flixw.java install .
./flixw pin 0.75.2

The README is the guide; CONTRACT.md is the precise statement of what is guaranteed, and LIMITATIONS.md of what is not.