# shipwright
Binary-side helper for the Shipwright version contract.
Provides the functions a binary calls to emit its version in the two required formats:
- `binary --version` → `"binary-name 1.2.3"`
- `binary --version --json` → structured JSON per `schemas/version-manifest.schema.json`
## Usage
```toml
[dependencies]
shipwright = "0.1"
```
```rust
use shipwright::{plain_version_line, version_output_json, VersionOutput, ExecutableKind, Language};
let output = VersionOutput::new("my-tool", env!("CARGO_PKG_VERSION"), ExecutableKind::Cli, Language::Rust)
.expect("valid name and version");
// plain: "my-tool 1.2.3"
println!("{}", plain_version_line("my-tool", env!("CARGO_PKG_VERSION"))?);
// json: structured version-manifest JSON
println!("{}", version_output_json(&output)?);
```
## License
Licensed under either of [MIT](../../LICENSE) or [Apache-2.0](../../LICENSE) at your option.
Copyright (c) 2026 NIMBLESITE PTY LTD