[![Martin](https://raw.githubusercontent.com/maplibre/martin/main/logo.png)](https://maplibre.org/martin/) [![Book](https://img.shields.io/badge/docs-Book-informational)](https://maplibre.org/martin) [![docs.rs docs](https://docs.rs/martin/badge.svg)](https://docs.rs/martin) [![](https://img.shields.io/badge/Slack-%23maplibre--martin-blueviolet?logo=slack)](https://slack.openstreetmap.us/) [![GitHub](https://img.shields.io/badge/github-maplibre/martin-8da0cb?logo=github)](https://github.com/maplibre/martin) [![crates.io version](https://img.shields.io/crates/v/martin.svg)](https://crates.io/crates/martin) [![Security audit](https://github.com/maplibre/martin/workflows/Security%20audit/badge.svg)](https://github.com/maplibre/martin/security) [![CI build](https://github.com/maplibre/martin/actions/workflows/ci.yml/badge.svg)](https://github.com/maplibre/martin/actions) [![Codecov](https://img.shields.io/codecov/c/github/maplibre/martin)](https://app.codecov.io/gh/maplibre/martin) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/11613/badge)](https://www.bestpractices.dev/projects/11613) Martin is a tile server and a set of tools able to generate vector tiles on the fly from large `PostgreSQL` databases, and serve tiles from `PMTiles` and `MBTiles` files. Martin optimizes for speed and heavy traffic, and is written in [Rust](https://github.com/rust-lang/rust). ## Features * Serve [vector tiles](https://github.com/mapbox/vector-tile-spec) from * [PostGIS](https://github.com/postgis/postgis) databases, automatically discovering compatible tables and functions * [PMTile](https://protomaps.com/blog/pmtiles-v3-whats-new), both local files and over HTTP * [MBTile](https://github.com/mapbox/mbtiles-spec) files * [GeoJSON](https://maplibre.org/martin/sources-geojson/) files, converted to vector tiles on the fly * [Passthrough](https://maplibre.org/martin/sources-passthrough/) tiles from an upstream HTTP tile server * [Combine](https://maplibre.org/martin/sources-composite/) multiple tile sources into one * Serve [styles](https://maplibre.org/martin/sources-styles/) and generate [sprites](https://maplibre.org/martin/sources-sprites/) or [font glyphs](https://maplibre.org/martin/sources-fonts/) on the fly * Generate tiles in bulk from any Martin-supported sources into an `MBTiles` file with [martin-cp](https://maplibre.org/martin/martin-cp/) tool * Examine, copy, validate, compare, and apply diffs between `MBTiles` files with [mbtiles](https://maplibre.org/martin/tools/#mbtiles) tool ## Documentation * [Quick Start](https://maplibre.org/martin/quick-start/) * [Installation](https://maplibre.org/martin/installation/) * Running with [CLI](https://maplibre.org/martin/run-with-cli/) or [configuration file](https://maplibre.org/martin/config-file/) * [Usage and API](https://maplibre.org/martin/using/) ## Getting Involved Join the `#maplibre-martin` slack channel at OSMUS -- automatic invite is at ## Contributing Like any open source project, Martin welcomes contributions from anyone who wants to help improve it. * See [Development Guide](https://maplibre.org/martin/development/) for setup * Use `just help` for common commands * Check [help wanted](https://github.com/maplibre/martin/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) issues ## License Licensed under either of * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or ) * MIT license ([LICENSE-MIT](LICENSE-MIT) or ) at your option. ### Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.