Language Flavors¶
VMx ships one language-neutral specification through four idiomatic surfaces: C#, Python, TypeScript, and Swift. The conceptual shape stays aligned; naming, package workflow, and host integration follow the local language.
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 published on PyPI; source tree may be ahead of latest release |
reactivex |
snake_case |
| TypeScript | @thekaveh/vmx package name defined; source-tree/local workspace today |
rxjs |
camelCase |
| Swift | SwiftPM package from repo tags after release | Combine |
camelCase |
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.
Flavor Pages¶
Common Rules¶
- All four full-parity flavors target the same VM family model, lifecycle semantics, and conformance catalog.
- Public naming follows ADR-0006: PascalCase in C#, snake_case in Python, camelCase in TypeScript and Swift.
- The substantive naming divergence is the modeled leaf/container type:
ComponentVM<M>in C# versusComponentVMOf[...]/ComponentVMOf<...>in Python, TypeScript, and Swift.
For source-tree status and the long-form API surface, use the flavor READMEs in the repository: C#, Python, TypeScript, Swift.