| Crates.io | navi-rust-bindings |
| lib.rs | navi-rust-bindings |
| version | 0.1.4 |
| created_at | 2025-12-09 12:51:25.31813+00 |
| updated_at | 2026-01-11 06:55:52.498956+00 |
| description | Generated Rust data structures for Navi-Core messages. |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1975434 |
| size | 52,600 |
Autogenerated Rust data structures that mirror Navi-Core message payloads so your application can parse or emit Navi telemetry.
Add the crate to your Cargo manifest:
[dependencies]
navi-rust-bindings = "0.1"
Every payload struct lives at the crate root and derives serde::Serialize/Deserialize for easy encoding:
use navi_rust_bindings::NaviOutputPayload;
// work with NaviOutputPayload
These bindings can be generated from .reg files under include/navi/core/registry/register_map.
Regenerate with the desired version (updates Cargo.toml, lib.rs, mod.rs, src/gen, and LICENSE):
python3 tools/generate_register_rust_crate.py --crate-version <M.m.p>
Verify the crate packages cleanly (fails if generated files are stale or metadata is invalid):
cd bindings/rust
cargo package
Publish once the package check passes. Authenticate with cargo login <token> once per machine or set CARGO_REGISTRY_TOKEN, then:
cargo publish
[!TIP] visit crates.io for the token, and try running
cargo publish --dry-run
The GitHub workflow .github/workflows/check-registers-rust-crate.yml enforces that generated artifacts stay in sync in pull requests; you should see a clean git status for bindings/rust before tagging, publishing, and creating PR.