// the find
josxha/flutter-maplibre
Permissive and performant vector and raster maps with wide styling support powered by MapLibre SDKs.
Flutter bindings for MapLibre's open-source map SDKs, covering Android, iOS, web, and desktop. It's a ground-up rewrite of the older maplibre_gl package, using FFI/JNI on mobile for native performance instead of platform channels. For Flutter devs who need vector tile maps without paying Mapbox licensing fees, this is the serious option.
Uses JNI directly on Android (via jnigen) rather than method channels — this is the right call for map rendering where call frequency and latency matter. Windows/macOS fall back to a WebView running maplibre-gl-js, which is an honest tradeoff rather than pretending desktop is a first-class citizen. The example app covers enough ground (PMTiles, offline, widget layers, style sources) that you can tell whether the feature you need actually works before committing. Test coverage exists at both unit and integration levels, including an offline manager test — unusual for a mapping library.
133 stars for a package this capable suggests it's still finding its audience; the ecosystem is thin compared to google_maps_flutter, so you'll hit missing features faster than the docs imply. Windows and macOS use a WebView as the rendering backend, which means you're shipping a browser engine for your map widget — fine for most apps, a problem if you're targeting low-memory environments. The JNI bindings are generated code (jni.g.dart) meaning any upstream MapLibre Native API change requires regenerating them and potentially breaking the Dart API. Linux isn't supported at all, which is a gap if you're building for embedded or desktop Linux.