← Back to all sparks
M

Mapnik

DEVOPS
Velocity2.5

Toolkit for developing mapping applications and rendering cartographic maps

Mapnik is turning a local-file map renderer into a client of remote tile archives

map-renderingvector-tilespmtilesdatasource-pluginscpp-modernizationgeospatial
Current state
Mapnik ships small, frequent point releases driven largely by one maintainer, with occasional outside contributions for build and platform fixes. The through-line since 4.1.0 is tiles.input: what started as vector-tile and PMTiles/MBTiles reading has grown network access over HTTPS, async metadata fetches, threading controls and direct z/x/y URL support. The 4.3.0 release turns attention back to the rendering core, fixing PostGIS connection-pool churn and multi-font Unicode text runs.
Where it's heading
Two threads run in parallel. The datasource layer is being generalized — combined input plugins in 4.2.0, a more flexible plugin infrastructure in 4.2.1 — so that tile sources sit alongside PostGIS and GDAL as first-class inputs rather than bolt-ons. Meanwhile the C++ substrate is being modernized in place: boost::optional replaced by std::optional, sqlite I/O moved to unique_ptr, polylabel swapped for an in-house C++ port, and vector-tile compression started. The library is positioning to render directly from hosted tile archives instead of assuming everything is on local disk.
Prediction
Vector-tile compression is explicitly marked work-in-progress, so expect 4.4.0 to finish it and to promote the experimental direct tile-URL support out of experimental status. The steady removal of Boost dependencies suggests further std:: replacements will keep arriving as incidental line items rather than as a headline migration.

Recent moves

  1. 17d ago

    Mapnik 4.3.0 fixes PostGIS pool churn and multi-font Unicode runs

    After two years of tile-input expansion, this release works on the rendering core: PostGIS async connection-pool churn is fixed and complex Unicode sequences now render correctly when a fontset spans multiple fonts. The new !unbuffered_bbox! token and the polylabel C++ port are small additions with real effects on label placement, and vector-tile compression lands as work-in-progress.

    View source ↗
  2. 4mo ago

    Mapnik v4.2.2

    A version bump published with no enumerated changes — the notes carry only a diff link. Nothing here indicates user-visible effect.

    View source ↗
  3. 6mo ago

    Mapnik 4.2.1 makes the plug-in infrastructure more flexible

    A single change, but one that continues the datasource generalization begun with combined input plugins in 4.2.0. Loosening the plugin infrastructure is the groundwork that lets tile sources sit alongside PostGIS and GDAL as peers.

    View source ↗
  4. 7mo ago

    Mapnik 4.2.0 combines the input plugins

    Consolidating the input plugins reduces the duplication that had accumulated as tiles.input grew alongside the older file and database datasources. It is a structural change with little immediate surface effect, and it sets up the plugin flexibility work in 4.2.1.

    View source ↗
  5. 9mo ago

    Mapnik 4.1.4 adds layer sort-by, fixes GDAL 3.12 build

    Mostly build repair — a re-applied 32-bit fix and a GDAL 3.12.0 compatibility fix — plus layer sort-by, which gives stylesheet authors explicit control over draw order within a layer. Typical of the maintenance releases that punctuate Mapnik's larger tile work.

    View source ↗
  6. 10mo ago

    Mapnik 4.1.3 reads PMTiles over the network with SSL

    ⚡ SPARK

    The release where tile support stops meaning local files. tiles.input gains TileJSON, HTTPS access to remote PMTiles, async metadata fetches and experimental direct z/x/y URLs — the point at which Mapnik's datasource layer starts behaving like a network client rather than a file reader.

    View source ↗