Platform Support Targets

We’re building a navigation SDK for the future, but we acknowledge that your users live in the present. Our general policy is to expect developers to have up-to-date build tools, but support older devices where possible without compromising the maintainability and future-readiness of the project.

Rust

The core team develops using the latest stable Rust release. At the moment, our MSRV is dictated by downstream projects. Until the project is stable, it is unlikely that we will have a more formal MSRV policy, but we do document the current MSRV in the root Cargo.toml and verify it via CI.

Swift

The core requires Swift 5.9+. We are iterating on a more ergonomic wrapper for MapLibre Native on iOS, and this leverages macros, which drive this requirement.

iOS

iOS support starts at version 15. Our general policy will be to support the current and at least the previous major version, extending to two major versions if possible. At the time of this writing, the “current-1” policy covers 96% of iOS devices. This is a pretty standard adoption rate for iOS.

Android

Android developers should always build using the latest stable Android Studio version.

However, Android end users are much slower to get new OS major versions for many reasons. We currently support API level 25 and higher. At the time of this writing, the support target covers 96% of Android users. We will use publicly available data on API levels and developer feedback to set API level requirements going forward.

Android API Level caveats

API levels lower than 26 do not include support for several Java 8 APIs. Crucially, the Instant API, which is essential for the library, is not present. We work around this using Java 8+ API desugaring support. As we are able to raise our support target, we will remove the desugaring, but for now, we need the compatibility shims / backports. This requirement probably extends to your apps as well if you target API 25.

Additionally, when running on Android API lower than 30, we have to fall back on older ICU APIs. This does not require any change to your app code; it’s an internal consideration.

We recommend supporting the newest API version possible for your user base, as Google officially drops support for older releases after just a few years.