Skip to content

Releases: maplibre/martin

v0.13.0

31 Dec 04:07
3dc54d7
Compare
Choose a tag to compare

Tile Caching

Add a top level config parameter -- the size of cache memory (in MB) to use for caching tiles and PMT directories, defaulting to 512, and 0 to disable. This also removes the pmtiles.dir_cache_size_mb parameter (it will be ignored, but will give a warning)

cache_size_mb: 512

The new cache will contain all tiles as provided by the source. So if PostgreSQL returns a non-compressed tile, the cache will contain the uncompressed variant, and will be compressed for each response. This will be fixed in the later releases.

Note that fonts and sprites are not cached at this time, and are still a TODO.

Internal

Full Changelog: v0.12.0...v0.13.0

v0.12.0

25 Dec 05:56
Compare
Choose a tag to compare

Cached PMTiles with HTTP support

Martin now supports cached local and HTTP PMTiles sources. Additionally, multiple PMTiles sources share a single web client instance, optimizing connection reuse in case multiple pmtiles reside on the same host. Implemented by @nyurik with great help from @kyleslugg who did the integration testing CI work, see #991, #1095, #1094

pmtiles:
  # Memory (in MB) to use for caching PMTiles directories [default: 32, 0 to disable]] 
  dir_cache_size_mb: 100
  paths:
    # scan this whole dir, matching all *.pmtiles files
    - /dir-path
    # specific pmtiles file will be published as a pmt source (filename without extension)
    - /path/to/pmt.pmtiles
    # A web server with a PMTiles file that supports range requests
    - https://example.org/path/tiles.pmtiles
  sources:
    # named source matching source name to a single file
    pm-src1: /path/to/pmt.pmtiles
    # A named source to a web server with a PMTiles file that supports range requests
    pm-web2: https://example.org/path/tiles.pmtiles

📝 We badly need someone to document how to setup Martin on AWS lambda, and/or similar setup on the other cloud providers. See #1102

martin-cp and mbtiles improvements

  • martin-cp will now update min/max zoom levels after copying to an mbtiles file, but only if the existing metadata min/max zooms do not include the tiles actually contained in the file by @nyurik in #1096
  • mbtiles update now allows different types of zoom updates - reset to content, grow only, or skip (dry run) by @nyurik in #1096

Martin as a Reusable Crate

Martin has been refactored to allow modular reuse to be more of a library in your own Rust application. When used as a library, you can use the following features to limit which backends are compiled by @nyurik in #1097 and #1094

  • postgres - enable PostgreSQL/PostGIS tile sources
  • pmtiles - enable PMTile tile sources
  • mbtiles - enable MBTile tile sources
  • fonts - enable font sources
  • sprites - enable sprite sources

Full Changelog: v0.11.6...v0.12.0

v0.11.6

19 Dec 04:29
Compare
Choose a tag to compare

What's Changed

  • Multiple mbtiles and martin-cp fixes by @nyurik in #1083
    • BREAKING: martin-cp will now set format=pbf instead of mvt. This is what QGIS and possibly others expect, and this is what tools like tilelive generates.
    • martin-cp sets minzoom and maxzoom metadata values based on the zoom parameters
    • Add mbtiles meta-update command to refresh zoom levels based on the present tiles.

Internal Changes

  • Make martin-cp integration tests ignore gen version by @nyurik in #1082

Full Changelog: v0.11.5...v0.11.6

v0.11.5

19 Dec 01:55
Compare
Choose a tag to compare

Bug Fixes

  • Fix composite sources returning bad data on empty by @nyurik in #1080, thanks
    to @jjcfrancisco for helping identify and debug this issue.

What's Changed

  • mbtiles and martin-cp now require --on-duplicate when adding to existing mbtiles files by @nyurik
    in #1064
  • New mbtiles copy --bbox ... filter to copy tiles within a bbox only by @nyurik
    in #1060
  • New mbtiles copy --copy (all|tiles|metadata) flag to limit what gets copied by @nyurik
    in #1073
  • Add a few aliases to mbtiles commands by @nyurik in #1063

Internal Improvements

Full Changelog: v0.11.4...v0.11.5

v0.11.4

12 Dec 07:01
Compare
Choose a tag to compare

What's Changed

  • Add tiles table/view validation to mbtiles validate by @nyurik in #1057
    • Reports any invalid data in the tiles table/view, e.g. bad tile index or incorrect data type.
  • Add extra CLI help string about RUST_LOG by @nyurik in #1053
  • Clean up mbtiles tool output by @nyurik in #1048
    • No more unrelated warnings due to slow running queries.

Miscellaneous

Full Changelog: v0.11.3...v0.11.4

v0.11.3

07 Dec 07:29
Compare
Choose a tag to compare

What's Changed

Internal

New Contributors

Full Changelog: v0.11.2...v0.11.3

v0.11.2

06 Dec 00:38
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.11.1...v0.11.2

v0.11.1

22 Nov 06:12
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.11.0...v0.11.1

v0.11.0

20 Nov 08:05
Compare
Choose a tag to compare

What's New

  • Add martin-cp tool to bulk-copy tiles from any Martin-supported sources by @nyurik in #1011
  • Add mbtiles summary tool to print MBTiles statistics by @sharkAndshark in #986

Configuration

Documentation changes

Minor changes

Full Changelog: v0.10.0...v0.11.0

v0.10.0

30 Oct 20:33
Compare
Choose a tag to compare

Breaking Changes

Auto bounds calculation methods

Martin startup should now be much faster by default. See #958 by @nyurik, fixing #955

  • Remove --disable-bounds flag and disable_bounds config parameters.
  • Add --auto-bounds / -b CLI parameter and auto_bounds config value:
    • quick: Compute table geometry bounds, but skips it if it takes longer than 5 seconds (default)
    • calc: Compute table geometry bounds. The startup time may be significant. Make sure all GEO columns have indexes
    • skip: Skip bounds calculation. The bounds will be set to the whole world
  • -b is now mapped to --auto-bounds param, but it will fail if used by itself because it now requires a value.

What's New

  • Catalog shows sprites and fonts info by @nyurik in #951
  • Add dynamic font support /font/<name>/<start>-<end> by @nyurik in #755
    Fonts allow glyph fallback: list font names as comma-separated values, and whichever font first has the glyph, that's the glyph that will be included. This way you can specify fallback fonts - /font/Font1,Font2,Font3/0-255

MBTiles

  • Add --apply-patch to copy, rename apply-diff by @nyurik in #945
  • Rename martin-mbtiles crate to mbtiles by @nyurik in #976

Miscellaneous

New Contributors

Full Changelog: v0.9.3...v0.10.0