whatisgithub

What is martin?

maplibre/martin — explained in plain English

Analysis updated 2026-05-18

3,634RustAudience · developerComplexity · 3/5LicenseSetup · moderate

In one sentence

A fast Rust tile server that turns PostGIS, PMTiles, or MBTiles data into map tiles for web maps.

Mindmap

mindmap
  root((Martin))
    What it does
      Serves vector map tiles
      Auto discovers PostGIS tables
      Reads PMTiles and MBTiles
      Generates sprites and fonts
    Tech stack
      Rust
      PostgreSQL
      PostGIS
      MapLibre
    Use cases
      Power a web map backend
      Bulk generate offline tile files
      Inspect and validate MBTiles
    Audience
      Developers building map apps
      GIS engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Serve live vector map tiles from a PostgreSQL/PostGIS database to a web map.

USE CASE 2

Host pre-built PMTiles or MBTiles files without needing a database.

USE CASE 3

Bulk generate an offline MBTiles file from any supported data source.

USE CASE 4

Inspect, validate, and compare MBTiles files with the bundled command-line tool.

What is it built with?

RustPostgreSQLPostGISMapLibre

How does it compare?

maplibre/martingodot-rust/gdnativedathere/qsv
Stars3,6343,6313,640
LanguageRustRustRust
Setup difficultymoderatemoderateeasy
Complexity3/54/53/5
Audiencedeveloperdeveloperdata

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Best used with an existing PostgreSQL/PostGIS database or pre-built tile files.

Dual licensed under Apache 2.0 or MIT, your choice, allowing free use including commercial use.

So what is it?

Martin is a server for delivering map tiles, built with performance and high traffic loads in mind. It is written in Rust, a programming language known for fast execution and low memory use. The project is part of the MapLibre family of open-source mapping tools. The core job Martin does is take geographic data and convert it into vector tiles on the fly. Vector tiles are small packages of map data that a browser or app can download and render as a visual map. Martin can pull this data from a PostgreSQL database (specifically using the PostGIS extension, which adds geographic capabilities to the database), and it automatically finds compatible tables and functions without manual configuration. It can also serve tiles directly from two common file formats: PMTiles and MBTiles, both of which store pre-packaged map data. Beyond serving tiles, Martin includes companion tools for working with MBTiles files. One tool, called martin-cp, lets you generate a complete set of tiles from any data source and save them into an MBTiles file for offline use or distribution. Another tool, simply called mbtiles, lets you inspect, copy, compare, and validate MBTiles files, which is useful for managing large map datasets. Martin also handles some adjacent mapping tasks: it can serve map style definitions, generate sprite sheets (small icon images used in maps), and produce font glyph files, all on the fly from configured sources. The project has a full documentation site at maplibre.org/martin, covering installation, configuration via a command-line interface or a config file, and the API for serving tiles to client applications. It is dual-licensed under Apache 2.0 and MIT, and welcomes outside contributions through its GitHub repository.

Copy-paste prompts

Prompt 1
Explain how to set up Martin to serve vector tiles from a PostGIS database.
Prompt 2
Help me configure Martin to generate an offline MBTiles file with martin-cp.
Prompt 3
Walk me through combining multiple tile sources into one endpoint with Martin.
Prompt 4
Show me how to connect a MapLibre GL JS map to a Martin tile server.

Frequently asked questions

What is martin?

A fast Rust tile server that turns PostGIS, PMTiles, or MBTiles data into map tiles for web maps.

What language is martin written in?

Mainly Rust. The stack also includes Rust, PostgreSQL, PostGIS.

What license does martin use?

Dual licensed under Apache 2.0 or MIT, your choice, allowing free use including commercial use.

How hard is martin to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is martin for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.