MapLibre Newsletter January 2025

Feb 3, 2025

Categories: Newsletter
Authors: Bart Louwers Brandon Liu Harel Mazor Joscha Eckert Ramya Ragupathy Yuri Astrakhan Birk Skyum Ian Wagner

As we step into 2025, we want to start with a heartfelt thank you to AWS for renewing their sponsorship for MapLibre. Their ongoing commitment since 2022 has played a vital role in the growth, and strengthening of our global community.

Thanks to AWS sponsorship renewal!

In addition to AWS, we want to extend our gratitude to all our supporters—both individuals and organizations—who contribute through GitHub Sponsors and OpenCollective. We acknowledge the collective contributions of our community, and we are grateful for your continued backing.

With that note, here’s the round-up of updates from January 2025!

MapLibre Native

  • MapLibre Android 11.8.0 and MapLibre iOS 6.10.0 were released which included the new PMTiles support for MapLibre Native.
  • MapLibre Native gained experimental Rust support (docs, PR). This allows C++ code to use Rust modules including dependencies. The first demo replaces csscolorparser.hpp with a popular Rust lib (2.2 million downloads). We need feedback on any potential issues with this approach. Thanks to @louwers and @nyurik.
  • The MapLibre Native Development Team kicked off their work again this January. They are currently working on:
    • Extending Custom Drawable Layer support for cross-platform custom layers.
    • Using a dynamic texture atlas for reduced memory usage.
    • Adding support for MapLibre Tiles which we expect will bring better performance.
    • Ongoing performance and stability improvements.
  • We want to bring Vulkan and Metal support to Qt. Qt is currently using an older opengl2 branch. If you are a MapLibre Native Qt user and want to help, please see this draft PR.
  • @TatyanaPolunina, a C++ engineer from Lyft, will be addressing some stability issues Lyft is facing, well as extending the observability of MapLibre Native. We are happy to work with Tetiana and Lyft on MapLibre Native this year!
  • Work has begun on MapLibre Native Rust wrapper - the ability to use native lib as a Rust crate. This will add another supported platform, in addition to Linux/Android/iOS/Node.js and others.

SwiftUI DSL

The MapLibre SwiftUI DSL v0.5 release is out with two stand-out features:

  • Basic support for fill style layers in the DSL. This lets you add things like area-of-interest shading dynamically using the DSL.
  • A revamped read-only proxy interface to the map view. This lets us safely expose access to functions on the underlying map view like func convert(_ coordinate: CLLocationCoordinate2D, toPointTo: UIView?) -> CGPoint directly. Such functions won’t cause any interference with SwiftUI state, and we now have a way to expose them directly, unlocking even more use cases.

Both new features were implemented by @hactar. These are first passes and don’t expose everything theoretically possible by MapLibre. If you’d like access to some method on the MLNMapView or need more properties from MLNFillStyleLayer, let us know with an issue or open a PR on GitHub!

We’ve also done some dependency upgrades, including upgrading MapLibre Native to 6.10. @Archdoog notes that if you’re using the Mockable package, the change may require some updates to your own code.

MapLibre Native - React Native SDK v10

The MapLibre Native - React Native SDK v10 has been released! Highlights of this release include:

  • New Architecture: The SDK has not been refactored to use New Architecture yet, so there isn’t any performance improvement, but v10 includes a new compat layer that allows MapLibre Native to be used in New Architecture mode.

  • Expo Support: v10 includes improvements for use in Expo, such as the ability to add Google Location Services.

  • Flexible SDK Versioning: This release allows users to configure which version of the iOS and Android SDKs from the MapLibre Native distributions are used. This works for minor and patch releases, enabling users of MapLibre React Native to adopt these new versions immediately after they are published, without waiting for a MapLibre React Native release.

  • New Documentation: https://maplibre.org/maplibre-react-native/

This release has been a year in the making, with 29 alphas and 21 betas! Thanks to @tyrauber and @KiwiKilian for their contributions, helping to enhance its capabilities and improve documentation.

Web

The year started with a bang 🎉. With the release of the globe almost on New Year’s eve we were off to a great start of 2025. One breaking change related to geometry-type in the style spec caused a lot of commotion and inspired an important discussion, resulting in a quick revert of that specific change with the release of 5.0.1. While this discussion was valuable we encourage the community to use our pre-releases for major versions and provide feedback before the official release. We also released version 5.1.0 this month, and there are nice things cooking as can be read in this newsletter. Great year ahead, no doubt!

MapLibre Web Fonts

A group of developers using MapLibre GL JS is interested in building native Web Fonts (.woff2) support, as a replacement for needing to fetch and host glyphs. This would have key advantages:

  • Fewer font files and less data to download when displaying labels.
  • Easier workflow for designing maps with custom typography.
  • Support for more languages in South and Southeast Asia.

A demonstration is live here.

You can find more information on GitHub Discussions or in the #maplibre-i18n slack channel.

MapLibre Flutter

  • The MapLibre Native Android SDK has been updated to 11.8.0 which adds support for PMTiles. It is planned to add support for PMTiles on web as well to provide feature parity across all platforms.
  • Static-typed map styles, including expressions have been evaluated. Modeling the MapLibre style spec with JSON schema to make the code generation more straight forward looks promising.

Martin Tile Server

Despite announcing v0.15 Martin release last month, we hit a last second testing issue that delayed the release until mid January. Moreover, additional testing uncovered some suprising inconsistencies with the newer PostgreSQL versions itself (unrelated to Martin). That said, Martin v0.15 is out with numerous new features, thanks to the amazing volunteer work of the team.

Monthly meetings

We will hold our monthly meetings on the second Wednesday of each month. However, for this month only, the MapLibre GL JS meeting will be held on February 19 instead of the usual second Wednesday. All other meetings will continue as scheduled. There will be an additional session on the last Wednesday to better accommodate participants in Asia time zones.

Second Wednesday Meetings (Feb 12, 2025)

  • MapLibre Navigation: 5:00–6:00 PM UTC
  • MapLibre Native: 6:00–7:00 PM UTC
  • MapLibre GL JS: Feb 19, 2025 - 7:00–8:00 PM UTC

Last Wednesday Meeting (Asia Friendly)

  • Feb 26, 2025 - 9:00–10:00 AM UTC

View meeting times in your time zone: https://notime.zone/OIJXZR9vM3EeY.

All calls are open to everyone. Zoom links can be found in our MapLibre Slack. If you’re not a member, request an invite at OpenStreetMap US Slack community. We look forward to seeing you!