High-performance tile server built in Rust. Serve PMTiles, MBTiles, PostGIS, and Cloud Optimized GeoTIFF with a browser-local AI assistant and native MapLibre rendering.
brew install vinayakkulkarni/tap/tileserver-rsCapabilities
Built in Rust for maximum performance. Serve tiles with sub-millisecond latency.
Native support for modern PMTiles and classic MBTiles tile archives with MVT and MLT format support.
On-the-fly MLT↔MVT transcoding. Serve next-gen MapLibre Tiles from existing MVT sources — up to 6x smaller tiles.
Serve vector tiles directly from PostGIS tables with optimized spatial queries.
Serve raster tiles from COG files with on-the-fly reprojection and colormap support.
Dynamic VRT/COG tile serving via PostGIS functions with query-based filtering.
Serve vector tiles directly or render them to raster on-the-fly.
Generate static map images like Mapbox Static API with native MapLibre rendering.
Run on your own infrastructure. No vendor lock-in, no API keys required.
Point at a directory or file and start serving. Auto-detects PMTiles, MBTiles, styles, and fonts.
Reload configuration without downtime via SIGHUP or admin API. Zero-request-drop with ArcSwap.
Drop GeoJSON, KML, GPX, CSV, Shapefile, PMTiles, MBTiles, or COG files onto the map for instant visualization with auto-styling.
Deploy to Railway, Render, DigitalOcean, or Fly.io in minutes. Sample data auto-downloads on first start.
Talk to your maps with a built-in LLM. Runs entirely in your browser via WebGPU — no API keys, no cloud, no token costs.
Serve vector tiles directly from GeoParquet files — no preprocessing. Point at Overture Maps data and get instant tiles.
Generate tiles from SQL queries against embedded DuckDB. Query GeoParquet, CSV, or any format DuckDB reads — PostGIS power, zero ops.
Interactive OpenAPI spec with Scalar UI. Generate SDKs, import into Postman, or track usage with built-in telemetry.
Per-source cache control headers with configurable max-age, stale-while-revalidate, and CDN-friendly strategies for optimal tile delivery.
AI Assistant
Your maps, your GPU, your data. The built-in AI assistant runs entirely in your browser — no API keys, no cloud inference, no per-token billing. Just open the chat and talk to your maps.
Every query stays in your browser. Map data, questions, and results never touch a third-party server.
Runs on your GPU via WebLLM. No server to maintain, no API keys to rotate, no monthly AI bills.
Fly to locations, filter layers, query features, and restyle your map — all by chatting in plain English.
fly_to, fit_bounds, set_layer_paint, query_rendered_features, spatial_query, and more — all callable by the LLM.
You
Show me all buildings in downtown Tokyo
AI
Flying to [139.7670, 35.6812] at zoom 15 ✅ Found 847 building features in viewport Highlighting buildings with height > 100m...
You
Make parks greener and more visible
AI
✅ Set park fill-color to #22c55e, opacity to 0.7
The AI runs a quantized LLM directly on your GPU via WebGPU — the same technology that powers browser gaming. First load downloads the model (~2 GB), then it’s cached in your browser forever.
Benchmarks
Real numbers from Docker-to-Docker benchmarks on ARM64. No marketing fluff.
0
PMTiles req/sec
10% faster than tileserver-gl
0
PostGIS req/sec
Matches martin (PostGIS-bound)
0
PostGIS req/sec at z14
7ms avg latency
~0
MB/s throughput
Consistent across zoom levels
Configuration
Get started with a simple TOML configuration file. Define your tile sources, styles, and server settings in one place.
# Tile sources
[[sources]]
id = "openmaptiles"
type = "pmtiles"
path = "/data/tiles.pmtiles"
serve_as = "mlt" # MVT→MLT on the fly
# PostgreSQL / PostGIS
[postgres]
connection_string = "postgresql://user:pass@localhost/db"
[[postgres.tables]]
id = "buildings"
table = "buildings"
geometry_column = "geom"API Reference
Simple, standards-compliant API with a built-in OpenAPI spec — something neither tileserver-gl nor martin offer. Explore the API
Every endpoint fully documented with request/response schemas. Generate client SDKs, import into Postman, or browse the Scalar UI.
Deploy your own tile server in minutes with our comprehensive documentation.