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 useComponentVMOf[...]/ComponentVMOf<...>.
For source-tree status and the long-form API surface, use the flavor READMEs in the repository: C#, Python, TypeScript, Swift, Rust.