Skip to content

Getting Started

Prerequisites

  • Rust (edition 2024, nightly recommended for WASM SIMD)
  • wasm-pack (for WASM builds): cargo install wasm-pack
  • Python 3.10+ (for documentation site): pip install -r docs/requirements.txt

Platform-Specific

Works out of the box. Metal backend is used automatically.

Requires Vulkan drivers. Install vulkan-tools and libvulkan-dev (or equivalent).

Requires wasm-pack and a browser with WebGPU support (Chrome 113+, Firefox Nightly).

Building

# Debug build
make build

# Release build
make release

# Check without building (fast type-check)
make check

Running

# Opens a window with the map renderer
make run

# Or directly:
cargo run

Controls

Input Action
Mouse drag Pan the map
Scroll wheel Zoom in/out (anchored at cursor)
G key Toggle globe projection

Running Tests

# All tests
make test

# A specific test
cargo test test_interpolate_linear

# With output
cargo test -- --nocapture

Pre-commit Hooks

The project uses pre-commit hooks for cargo fmt and cargo clippy. They were added in commit eec50f0.

# Format code
make fmt

# Run clippy
make lint

# Both checks
make check

Benchmarks

Criterion.rs benchmarks cover MVT decoding, tessellation, collision detection, expression evaluation, and geometry extraction.

# Run benchmarks
make bench

# Open HTML report
make bench-report

Code Coverage

# Generate LCOV report
make coverage

# Run SonarQube analysis (requires local SonarQube)
make sonar