Rust path
Scaffold an OMS Service with cargo-generate
The Rust template produces a checklist-ready OMS Service: ServiceStatus heartbeats, status data requests, BIT hooks, a Service Contract generator, Helm, and cucumber-uci conformance wired as a SUT sidecar. You replace the example body; you do not invent the lifecycle.
Day one
Generate, then run
Install the generators
You need Rust (rustup), cargo install cargo-generate, and Git access to the template. Pin a tag so the scaffold is reproducible.
Generate against v1.0.0
SSH works if you have keys; HTTPS is shown here. Use the same value for --name and the service_name prompt.
cargo generate \
--git https://gitlab.com/stator-open-labs/oms-developer-kit/service-template-rust.git \
--tag v1.0.0 \
--name my-serviceBuild, contract, test, run
Local cargo run uses in-memory transport. OWP evidence is the GitLab SUT path, just dev-bus, and Helm.
cd my-service
cargo build && just contract && cargo test && cargo runPrompts
What cargo-generate asks
| Prompt | Notes |
|---|---|
| service_name | Crate and binary name; same as --name |
| service_kind | Service | Subsystem | Isolator (default Service) |
| capability_name | PascalCase label for the Service Contract |
| organization | Owning org string |
| classification | UNCLASSIFIED | CUI | SECRET | TOP_SECRET |
| platform_crates_version | Git tag, default v1.0.0 |
| pipelines_oms_version | CI component pin, default 1.0.0 |
| oms_schema_version | Default 002.5.0 |
| cucumber_uci_version | Harness image tag |
| gitlab_namespace | Group path without the project name |
What you get
A service repo, not a library
- HeartbeatService example and config.yaml with contract seed
- Dockerfile, Helm chart with OWP defaults, justfile
- GitLab CI that includes pipelines-oms
oms-servicewith SUT wiring and registry publish on semver tags - Baseline features under features/oms-compliance/
Default platform pin is platform-crates v1.0.0. Cargo fetch of git deps needs GitLab credentials. Formal OACWG assessment remains author work after generate.
Prefer Python? Start with Copier. Template project: Service-Template-Rust.