54 lines
1.4 KiB
Markdown
54 lines
1.4 KiB
Markdown
# Rust Client Workspace
|
|
|
|
The Rust client workspace contains the MXAccess Gateway client library, a
|
|
test CLI, and scaffold tests for generated contract wiring. The library uses
|
|
the shared protobuf inputs documented in
|
|
`../../docs/client-proto-generation.md` so the Rust bindings compile against
|
|
the same public gateway and worker contracts as the server.
|
|
|
|
## Layout
|
|
|
|
```text
|
|
clients/rust/
|
|
Cargo.toml
|
|
build.rs
|
|
src/
|
|
tests/
|
|
crates/mxgw-cli/
|
|
```
|
|
|
|
`build.rs` reads the `.proto` files from
|
|
`../../src/MxGateway.Contracts/Protos` and generates `tonic`/`prost` bindings
|
|
into Cargo build output. `src/generated.rs` declares the Rust modules that
|
|
include those generated files. `src/generated` remains reserved for checked-in
|
|
generator output if the crate later changes to source-tree generation.
|
|
|
|
## Build And Test
|
|
|
|
Run the Rust workspace checks from `clients/rust`:
|
|
|
|
```powershell
|
|
cargo fmt --all --check
|
|
cargo test --workspace
|
|
cargo check --workspace
|
|
```
|
|
|
|
The build script uses `protoc` from `PATH` or the Windows path recorded in
|
|
`../../docs/toolchain-links.md`.
|
|
|
|
## CLI
|
|
|
|
The scaffold CLI exposes version information:
|
|
|
|
```powershell
|
|
cargo run -p mxgw-cli -- version --json
|
|
```
|
|
|
|
Additional commands are implemented with the client/session wrapper work.
|
|
|
|
## Related Documentation
|
|
|
|
- [Client Proto Generation](../../docs/client-proto-generation.md)
|
|
- [Rust Client Detailed Design](../../docs/clients-rust-design.md)
|
|
- [Rust Style Guide](../../docs/style-guides/RustStyleGuide.md)
|