Languages
Itinera has one specification and an implementation in each language. Every implementation claims a tier of the specification and a list of capabilities, and it may claim a tier only when every conformance case of that tier, and of the tiers before it, passes. What each one claims comes from its conformance manifest, never from this page alone.
| Language | Version | Tier | Capabilities | Book |
|---|---|---|---|---|
| Rust | 0.1.0-rc.1, in preparation, not published yet | Tier 1 | Synchronous and asynchronous executors | The Rust book |
| TypeScript | Planned | Not yet | Not yet | Not yet |
| The JVM (Kotlin, with support for Java) | Planned | Not yet | Not yet | Not yet |
A tier is a level of meaning: tier 1 is a single workflow, with its steps, policies, retries, rescue steps, services and events. A capability is how a workflow runs, such as a synchronous or an asynchronous executor. The roadmap lists the tiers, and the specification says what each means.
Rust
Rust 0.1.0-rc.1 is in preparation, and not on its package registry yet. It will claim tier 1, with synchronous and asynchronous executors.
- Install, once it is published, with
cargo add itinera@0.1.0-rc.1, adding--features asyncfor the asynchronous executor. - The book: the Rust edition, starting at Quick start.
- API reference: docs.rs/itinera, once the package is published.
- Source: itinera-dev/itinera-rs.
- Architecture: how it works inside: how it is put together and how it runs a journey, drawn tier by tier.
- What it claims: its conformance manifest lists every proposal it implements and the conformance cases it runs. Its first release will carry the conformance report that proves it.
Planned languages
TypeScript comes next, then the JVM, with Kotlin first and support for Java. Each follows the same specification and runs the same conformance cases, so a workflow means the same in every language. A new language starts with a proposal, like any other change; Contribute says how.