Skip to content

7.1. Language Flavors

VMx ships one language-neutral specification through five idiomatic source surfaces: C#, Python, TypeScript, Swift, and Rust. The conceptual shape stays aligned; naming, package workflow, and host integration follow the local language.

7.1.1. At A Glance

Flavor Package status Reactive primitive Naming idiom
C# VMx package name reserved in docs; source-tree/local reference today System.Reactive PascalCase
Python vmx 3.23.0 published on PyPI reactivex snake_case
TypeScript @thekaveh/vmx package name defined; source-tree/local workspace today rxjs camelCase
Swift VMx 3.24.0 released through repository-root SwiftPM tags Combine camelCase
Rust vmx-rs crate in source tree; crates.io release not published VMx-owned facade snake_case

7.1.2. Reading Path

  • Start with the page for your flavor when you need install, package-status, and host-integration pointers.
  • Use Cross-Language Naming when you are translating an idea or snippet across flavors.
  • Use Quickstart when you want the smallest same-shape setup before diving into flavor-specific details.

7.1.3. Flavor Pages

7.1.4. Common Rules

  • All five catalog-complete source flavors target the same VM family model and 407-ID library conformance catalog. The completed Rust convergence ledger records its focused 0.27.0 public-surface and behavior evidence.
  • Public naming follows ADR-0006: PascalCase in C#, snake_case in Python, camelCase in TypeScript and Swift, and snake_case for Rust methods with Rust-style type names such as ComponentVm.
  • The substantive naming divergence is the modeled leaf/container type: C# and Rust retain ComponentVM<M> / ComponentVm<M>, while Python, TypeScript, and Swift use ComponentVMOf[...] / ComponentVMOf<...>.

For source-tree status and the long-form API surface, use the flavor READMEs in the repository: C#, Python, TypeScript, Swift, Rust.