Choose a Target
All four generators consume the same compiled schema, but their native evidence is not identical. Choose a target based on what is verified today, then test the specific schemas and environments your application will ship.
| Surface | Distribution | Evidence in this repository |
|---|---|---|
| Compiler and CLI | Rust crates and release binaries | Workspace tests, corpus, project graphs, diagnostics, and compatibility checks |
| Editor diagnostics | Source build from current main (vexilc lsp over stdio) | Full-document single-file synchronization, compiler diagnostics, and UTF-16 range tests |
| Rust generated code | vexil-runtime | Broad golden, native compile, Clippy, and byte-vector coverage |
| TypeScript generated code | @vexil-lang/runtime | Native type-check/build/tests and broad byte-vector coverage |
| Go generated code | versioned Go module | Native compile and execution over a representative shared wire matrix |
| Python generated code | vexil-runtime on PyPI | Static checking and native execution over a representative shared wire matrix |
The curated cross-language example compares one readable fixture across all four targets. The generated-wire test suite covers a larger representative matrix.
Shared contract points
Every maintained target is expected to agree on:
- LSB-first bit packing and little-endian multi-byte scalars;
- LEB128 and ZigZag integer encodings;
- field and variant ordinals;
- canonical collection ordering;
- Result discriminants (
0 = Err,1 = Ok); - bounded preservation of unknown non-exhaustive union variants;
- canonical BLAKE3 schema hashes.
Differences in generated language API shape are target-specific. Differences in wire bytes for the same schema and value are defects.
Current boundaries
- Go and Python coverage is representative, not exhaustive.
- The language server is newer than the published
vexilc0.6.0 CLI and is available only from a current source build. It is diagnostics-only and single-file: it does not load imports or projects and does not advertise completion, navigation, hover, formatting, incremental synchronization, or a bundled editor extension. - The Python runtime is published on PyPI. Its generated-code evidence remains representative rather than exhaustive.
- No independent implementation or external security audit has been completed.
- The compiler does not promise unimplemented constraints, RPC, transport, encryption profiles, reflection, or a standard library for a named version.
Continue with Compatibility and Limits before deploying a new protocol.