Oct 1, 2026
Welcome to the September 2026 edition of the MapLibre newsletter! A special thanks to our sponsor, Mapme, for their renewed sponsorship and steadfast support since 2024. This month is packed with major milestones across projects. Let’s dive right in!
Sincere thanks to Mapme for their continuous backing since 2024 🤝.
An update on the new cross-platform plugin system for MapLibre Native.
🚀 A first version of the C Plugin API has landed this month!
We also already saw various PRs (#4654, #4692, #4665) that extended the capabilities of the plugin system. This is exactly the approach that we want to take: gradually expand the scope of the plugin system to make sure it fits all the use cases that our users have.
It should be noted that during this development phase the plugin system is not stable yet. Regular builds also do not include it yet (all integration code is guarded with a MLN_WITH_PLUGINS build flag). However, for those that want to experiment with the plugin API already, we did put out a pre-release for MapLibre Android that includes it. Please see this repository for an example. MapLibre iOS will follow suit.
Note that these plugins tie directly into the core. The plugins are cross-platform, and thanks to the C API, once the API is stable, people will be able to publish plugins that will continue working across versions. We believe that this has the potential to create a true plugin ecosystem for MapLibre Native. By having a powerful plugin system, we allow people to extend the library and experiment, while keeping the core library stable (and small). Below you can find a small taste of some interesting ideas.
Examples of plugins that the new plugin API enables: waves, an n-gon layer, custom location indicators, 3D models, fireworks, flow direction, snow and animated symbols (click to enlarge). Thanks to Sargun Vohra for sharing his experiments. Map data from OpenStreetMap and styles based on OpenMapTiles shown.
Terrain3D is a work-in-progress, with people still hacking away at the feature/terrain-3d branch until it can be declared feature complete and stable. Patrik Drhlik decided to become an early adopter and try it out. He shared the following promising video:
Terrain3D in Patrik’s MapRiot app.
With #4315 merged we now have a new platform: OpenHarmony. OpenHarmony has about 20% smartphone market share in China and about 5% globally. What makes this platform interesting as well is Oniro. This is an Eclipse Foundation Project that builds on OpenHarmony and is “dedicated to the development of an open source vendor-neutral Operating System (OS) platform”.
MapLibre Native running on OpenHarmony, this interactive sample is included in the platform and can use either Vulkan or OpenGL ES.
Tim Sylvester implemented the ability to introspect rendered features in #4460 this month. While this functionality was built primarily with testing purposes in mind, it might offer some opportunities for MapLibre Native to better integrate with accessibility tools such as screen readers. We would be very eager to hear from people willing to share their ideas on how to push such accessibility efforts.
semiliteral expression is now supported in Native, matching GL JS. It allows array-valued properties, such as text offsets, to contain elements calculated using expressions.| Platform | Latest Versions |
|---|---|
| Android | 13.5.2 , 13.6.1 , 13.6.1 pre-release (with plugin API) |
| iOS | 6.30.0 , 6.31.0 |
💪 We did a large sweep this month over the open issues and closed about 80 of them (~25%). We also swept through the PRs and revived some stale ones. Many thanks to John Carmack for driving this effort!
Additionally we have added support for the font-faces style spec property, officially closing one of the last major gaps between native and web.
We released 8 versions this month: 6.7, 6.8, 6.9, 6.9.1, 6.10, 6.11, 6.11.1 and 6.11.2. These versions are packed with new features, fixes and improvements. Our pace is increasing dramatically with the extensive use of AI, but we make sure to fully review and test all the code that ships in order to keep our quality high. Check out our AI contribution policy in the contributing guide.
Here are some highlights from these releases, although there are too many to list:
font-faces style spec property is now supported, which allows using font files with
MapLibre. This was one of the last gaps between native and web, and it is now closed.💙 As always, we would like to thank all the contributors this month, this wouldn’t have been possible without your help!
Martin 2.0 is now officially in beta! Test it against your setup and check out our new migration guide.
We released 3 versions this month: 1.16.0, 1.16.1 and the first beta of Martin 2.0 (2.0.0-beta.0).
We merged more than 150 non-bot PRs, and Martin 2.0 is now in beta.
Please try the beta against your setup and tell us what breaks.
We have written a migration guide:
2.0 removes the options that v1.x and v0.x deprecated, changes some defaults and needs PostGIS 3.5 or newer.
If Martin 1.16 starts without deprecation warnings for you, you’re probably fine (the only un-warned change is martin-cp -> martin cp).
Here are some highlights:
NZTM2000Quad), and you can define your own in the config.-full Docker images and tarballs due to having some shared library version dependencies./health still only reports ready once everything has loaded.filter: population > 100000 on a table instead of
writing a SQL function.--no-tui turns it off).martin-cp is now the martin cp subcommand. It can skip now also skip tiles below an empty tile, which took a world copy from 243s down to 11s on our test database.s3://, hf:// and
more, .duckdb files, hot reload) and on remote COG sources.As always, we would like to thank all the contributors this month, this wouldn’t have been possible without your help!
📦 Announcement: MLT v2 has evolved from a spec skeleton into a fully working format complete with its own high-performance Rust encoder/decoder, docs, and interactive inspector.
This month was about MLT v2. It went from a header and metadata skeleton to a working format with its own encoder, decoder, docs and inspector. Everything MLTv2 is still behind the unstable-v2 feature while there are still unresolved questions (see below).
We shipped 13 releases of mlt-core (0.12.7 -> 0.16.0), along with the mlt CLI, the FFI, WASM and Python bindings, and @maplibre/mlt 1.2.1 and 1.3.0.
Here are some highlights, although there are too many to list:

MapLibre Tiles v2 Inspector
In terms of what we are still discussing (please join our slack channel 😉) before we can move for stabilization:
rANS entropy coding for vertex streams that are smaller, but also 15% slower to decode and more complex?Over the past couple of months, MapLibre Compose has shipped a shared implementation for Android, iOS, and desktop built on MapLibre Native FFI. These releases closed nearly all the previously open issues (about 80!), completed feature parity work for desktop and web, including map styling and proper compositing with Compose UI, added long-requested features including a map snapshotter and imperative styling APIs, plus support and demos for integrating maps with Android Auto and CarPlay.
StreetComplete, the OpenStreetMap surveying app, has also merged its migration from direct MapLibre Native Android integration to MapLibre Compose, sharing its map implementation across Android and iOS.
MapLibre Compose is now essentially feature-complete, except for Kotlin Wasm support which is in draft until the next Compose Multiplatform release. The remaining work before 1.0 is improving documentation, performance, finding and squashing bugs, and improving API ergonomics. User feedback is especially important at this stage.
Version 5.0.0 of the MapLibre Navigation SDK has been released, bringing KMP compatibility and major improvements! Huge thanks to Fabian Keunecke for the great work! 🎉
Tel Aviv 2035: A 3D map of Tel Aviv-Yafo built in just one hour with MapLibre GL JS at the Fable 5.1 Build Day on September 17, 2026, where it won the Breakthrough track!
build-day-2026-09-17-winner; see MAKING_OF.md)About the Build: Built as a one-page web app using MapLibre GL JS fill-extrusion over municipality raster orthophotos (1997–2025).

Tel Aviv 2035: existing buildings coloured by year, with permitted and planned volumes in blue
We continue our regular community calls on the second Wednesday of each month, with an additional session on the last Wednesday to better accommodate Asia/Oceania time zones. As an exception, this month we will have it one day earlier to accommodate maintainer’s availability.
Upcoming Calls
🌏 MapLibre Eastern Call
Held on the last Wednesday of the month at an Asia/Oceania-friendly hour:
All calls are open to everyone. Zoom links are shared in the MapLibre Slack.
Not yet a member? Request an invite via the OpenStreetMap US Slack and join the #maplibre channel.
We’d love to see you there!