Skip to main content

Crate mlt_wasm

Crate mlt_wasm 

Source
Expand description

WebAssembly bindings for the MapLibre Tile (MLT) format.

§Design

A single MltTile struct owns all decoded mlt_core::TileLayer data for every layer in the tile. No per-layer or per-feature WASM objects are created; every accessor takes explicit (layer_idx, feature_idx) arguments so the JavaScript side can keep plain numeric indices rather than heap-allocated wrapper objects.

§Geometry

MltTile::layer_geometry returns a LayerGeometry whose typed-array getters expose the raw offset and vertex buffers. JS walks these directly - zero WASM boundary crossings per feature.

§IDs

MltTile::layer_ids returns a Float64Array - one f64 per feature. Absent IDs are NaN (≡ undefined after the JS wrapper checks isNaN). IDs above Number.MAX_SAFE_INTEGER lose precision.

§Properties

MltTile::layer_property_keys and MltTile::layer_properties expose all property columns as typed arrays built once per layer. JS reads any feature’s property with a single array index - zero WASM calls during traversal.

Functions§

decode_tile
Decode a raw MLT tile blob and return an MltTile.