Vexil 0.6.0
The vexilc 0.6.0 release caps a focused 0.x stabilization wave. It is not a
1.0 claim. The release establishes a clearer compiler-to-runtime path, explicit
package boundaries, and documentation that distinguishes broad evidence from
representative coverage.
Highlights
- Import version requirements are enforced as SemVer across direct and transitive project graphs.
- Concrete type aliases work for containers and imported named types while remaining transparent on the wire.
- Unsupported message invariants fail closed with a dedicated diagnostic.
- Result encoding retains the published
0 = Err,1 = Okcontract. - Unknown non-exhaustive union values preserve their discriminant and payload in Rust, TypeScript, Go, and Python.
- Generated-code checks compile and execute target output, including expanded Go and Python compliance coverage.
- A curated example path moves from a first schema through evolution, cross-language byte agreement, and stateful telemetry, with regeneration and execution checked in CI.
- Python
vexil-runtime0.1.0 is published on PyPI through Trusted Publishing.
Upgrade notes
Regenerate code with the matching vexilc release and run your target's native
test suite. If you use non-exhaustive unions, handle or retain the generated
unknown case. If a schema contains invariant, compilation now rejects it
instead of implying enforcement that did not exist.
Import requirements such as @ ^0.5.0 now have effect. Give imported schemas
a valid schema-level @version; a missing version produces a warning and a
mismatch produces an error.
Current boundaries
This release does not add a new wire format, cross-field constraints, regex constraints, invariant execution, RPC definitions, a standard library, a transport profile, or encryption. These remain separately decidable work and have no promised version number.
Go and Python have representative native and generated-code evidence rather than the broader coverage currently held by Rust and TypeScript.
Published components
Components version independently. This release wave published:
- compiler and Rust, TypeScript, Go, and Python generators at 0.5.0;
- Rust runtime and
vexilcat 0.6.0; vexil-storeat 0.5.0;- TypeScript runtime at 0.5.2;
- Go runtime module at 0.1.1; and
- Python runtime at 0.1.0.
See the GitHub release
for pre-built vexilc archives and checksums.