# mvt-reader
Mapbox vector tile reader in Rust
A library for decoding and reading mapbox vector tiles in Rust and WebAssembly

Build status MIT license
## Features - Decodes and reads Mapbox vector tiles in Rust - Provides an API for accessing layer names and features within a vector tile - Can be used as a WebAssembly module in JavaScript (enabled by the `wasm` feature) ## Build the project ```sh cargo build --release ``` ## Run tests ```sh cargo test wasm-pack build --release --target nodejs -d pkg/node -- --features wasm && npm test ``` ## Usage To use the `mvt-reader` library in your Rust project, add the following to your `Cargo.toml` file: ```toml [dependencies] mvt-reader = "1.5.0" ``` Then, you can import and use the library in your code: ```rust use mvt_reader::{Reader, ParserError}; fn main() -> Result<(), ParserError> { // Read a vector tile from file or data let data = vec![/* Vector tile data */]; let reader = Reader::new(data)?; // Get layer names let layer_names = reader.get_layer_names()?; for name in layer_names { println!("Layer: {}", name); } // Get features for a specific layer let layer_index = 0; let features = reader.get_features(layer_index)?; for feature in features { todo!() } Ok(()) } ``` ## WebAssembly Usage To use the mvt-reader library as a WebAssembly module in JavaScript, you can install it with npm and use it in your JavaScript code: ```js const { Reader } = require('mvt-reader') const fs = require('fs') // Example usage const reader = new Reader(fs.readFileSync('path/to/tile.mvt')) const layerNames = reader.getLayerNames() console.log(layerNames) // More code... ``` ## License This project is licensed under the [MIT License](LICENSE).