Skip to content

Releases: maplibre/martin

v0.14.2

27 Jun 00:52
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.14.1...v0.14.2

v0.14.1

26 Jun 21:22
Compare
Choose a tag to compare

Book

What's Changed

  • fix mbtiles copy --apply-patch when applying bin-diff-raw patches by @nyurik in #1384
  • updated dependencies

Full Changelog: v0.14.0...v0.14.1

v0.14.0

25 Jun 20:01
Compare
Choose a tag to compare

Book
UPDATE: this release has a minor bug in mbtiles utility, fixed in subsequent release

martin

  • Add runtime for AWS Lambda by @jleedev in #1127
  • Add --preferred-encoding (gzip|brotli) to use when tile is not pre-encoded by source by @sharkAndshark in #1189
  • Switch default encoding to gzip for now by @nyurik in #1260
  • Fix preferred encoding computation by @nyurik in #1355
  • add application_name to PG connection by @nyurik in #1325
  • Fix martin --auto-bounds silently ignored with --config by @nyurik in #1223

martin-cp

mbtiles

  • New mbtiles diff command aliasing mbtiles copy --diff-with-file by @sharkAndshark in #1068
  • Add binary diff support for mbtiles by @nyurik in #1358
    • mbtiles diff now has an additional --patch-type param with whole, bin-diff-raw and bin-diff-gz values:
      • whole stores different tiles as before - as whole tiles in the tiles table
      • bin-diff-raw computes binary difference between tiles, and stores them as brotli-encoded value in a bsdiffraw table, together with a xxh3_64 hash of the tile as it will be stored after patching
      • bin-diff-gz same as bin-diff-raw, but assumes the tiles are gzip-compressed, so it uncompresses them before comparing. The xxh3_64 stores the hash of the uncompressed tile. The data will be stored in the bsdiffrawgz table (identical structure with above)
    • mbtiles copy --apply-patch will automatically detect if bsdiffrawgz or bsdiffraw tables exist, and will use binary patching.
    • mbtiles apply-patch does not support binary patching yet
    • mbtiles copy --diff-with-file ... --patch-type ... is an alias to mbtiles diff --patch-type ...
  • bug: ensure agg_tiles_hash_after_apply is added even on empty mbtiles by @nyurik in #1242

Documentation

Other Changes

New Contributors

Full Changelog: v0.13.0...v0.14.0

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