mesh-data-tile-rs (reference)
Minimal Rust reference implementation for Mesh Tile Format v1 (MTI1).
Scope:
- Encode tile bytes from metadata + uncompressed payload bytes.
- Decode tile bytes into metadata + uncompressed payload bytes.
- Validate fixed header fields, CRC32 checksums, and payload length.
- Support
compression=noneandcompression=deflate-raw. - Provide typed payload helpers (
f64values <-> payload bytes) for all dtypes.
Out of scope:
- GeoJSON/vector conversion.
- Map rendering integrations.
JIS root-tile recommendation:
- For
mesh_kind=JisX0410,tile_id=0is a recommended convention for a root tile representing the full JIS mesh scope (west=122,south=20,east=154,north=46). - This crate treats
tile_idas metadata for JIS tiles and accepts0as a valid value.
Run tests
From repository root:
From references/rust:
Release flow (crates.io with cargo-release)
Pre-requisites:
- A crates.io token with publish permission.
cargo-releaseinstalled (cargo install cargo-release --locked).
One-time auth:
Preflight checks (from repository root):
Dry-run a release (from references/rust):
Publish a release (from references/rust):
Use minor or major instead of patch when needed:
Current release config in Cargo.toml:
- Releases are allowed only from
main. - Tag format is
mesh-data-tile-rs-v<version>. - Release commit message format is
chore(release): mesh-data-tile-rs v<version>.
Example
use ;
let dims = TileDimensions ;
let payload = encode_payload_values?;
let encoded = encode_tile?;
let decoded = decode_tile_minimal?;
let values = decode_payload_values?;
assert_eq!;
# Ok::