Skip to main content

Rust Compatibility Guide

This guide separates the Rust combination that was executed from combinations that are only documented or discoverable.

Verified Combination

LayerVerified valueEvidenceConclusion
Generator Server20260710.110004Official endpoint and live generationCurrent generation baseline.
Cargo client2.0.8Installed help/source and live service callsservices, evaluate, and dynamic targets verified.
Targetsrust-lib-core, rust-app-consoleLive generationBoth generated and passed cargo test.
Runtime/providerTeaQL 4.1.1, SQLite provider 4.1.1Generated manifests and clean testsExecuted combination.
SQLite driverrusqlite 0.32 with bundled SQLiteGenerated manifestExecuted provider dependency.
Rust edition2021Generated manifestsGenerated language edition.
Toolchain usednightly Rust/Cargo 1.99.0Golden Path build outputTested toolchain only; not MSRV evidence.

The console started with SQLite, and an intent-declared query plus audited mutation succeeded. A model change adding email and audit masking regenerated the expected APIs/metadata and passed tests without TeaQL dependency drift.

Target Layout Contract

The generated console manifest depends on ../rust-lib-core/lib. Generate the two outputs as siblings:

generated/
rust-lib-core/
lib/Cargo.toml
rust-app-console/
Cargo.toml

The console also contains its own generated lib/, but that copy does not replace the sibling path dependency in the observed manifest.

Known Boundaries

  • The minimum supported Rust version is undefined; a nightly build is not an MSRV statement.
  • Generated sample_data.rs contains two queries with purpose but no comment; do not copy that template defect into handwritten code.
  • The verified model seeds its domain-root candidate. Creating another root caused a SQLite primary-key conflict; reuse the seeded root according to model semantics.
  • PostgreSQL, MySQL, Meilisearch, and memory paths do not have equivalent clean versioned evidence in this repository.

Upgrade or Adoption Check

  1. Verify cargo teaql --version and query services.
  2. Evaluate before generation; read the Markdown report completely.
  3. Generate both targets into clean sibling directories.
  4. Record generated Cargo.toml/Cargo.lock, edition, runtime, provider, and database-driver versions.
  5. Run tests for both targets with the selected toolchain.
  6. Start the application against a disposable database.
  7. Execute one intent-declared query and one audited mutation.
  8. Regenerate after a one-field model change and inspect API/audit metadata.
  9. Repeat provider-specific transaction, schema, time, text, and ID tests.

Related pages: