maplibre/maplibre-rs
maplibre/maplibre-rs has 1,590 GitHub stars and 97 forks. GitHot measured 0 stars in 24 hours and +4 in 7 days. Last checked 2026-11-11 17:54 UTC. Last push 2026-10-30.
Rust-based WebGPU map renderer for Web, Mobile and Desktop
What you can do
- Runs on Linux, Android, iOS, macOS, Firefox, Safari (>=v16 due to (#166)[https://github.com/maplibre/maplibre-rs/issues/166]) and Chrome
- Render a vector tile dataset
- Simple navigation powered by winit
- Multithreaded on all platforms
Measured star growth
- in 24h
- 0
- in 7 days
- +4
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalWebGL Demo | Book | API | Chat (#maplibre-rs)
Project
This project aims to develop a MapLibre Style Spec compliant renderer in Rust, using WebGPU for cross-platform support.
Description
maplibre-rs is a portable and performant vector maps renderer. We aim to support web, mobile and desktop applications. This is achieved by the novel WebGPU specification. Plenty of native implementations are already implementing this specification. On the web, it is implemented by Firefox, Chrome and Safari. There are also standalone implementations that directly use Vulkan, OpenGL or Metal as a backend. Those backends allow maplibre-rs to run on mobile and desktop applications.
Rust is used as a Lingua franca on all platforms. This is made possible by WebAssembly, which allows us to use Rust for web development.
The goal of maplibre-rs is to render maps to visualize data. Right now the goal of maplibre-rs is not to replace existing vector map renderers like Google Maps, Apple Maps or MapLibre. The current implementation serves as a proof-of-concept of the used technology stack. It is unclear whether the high-performance requirements of rendering maps using vector graphics are achievable using the current stack.
Demos
- WebGL
- WebGL with multithreading - Does not work on Safari right now
- WebGPU - Only works with development versions of Safari TP, Firefox and Chrome
Current Features
- Runs on Linux, Android, iOS, macOS, Firefox, Safari (>=v16 due to (#166)[https://github.com/maplibre/maplibre-rs/issues/166]) and Chrome
- Render a vector tile dataset
- Simple navigation powered by winit
- Multithreaded on all platforms
- Querying feature data
Missing Features
- Rendering Text
- Per-Feature Rendering
- Rendering:
- Labels
- Symbols
- Raster data
- 3D terrain
- Hill-shade (DEM)
- Collision detection
- Support for:
- GeoJSON
- API for:
- TypeScript
- Swift
- Java/Kotlin
Building & Running
Clone the project
git clone https://github.com/maplibre/maplibre-rs.git
Build and run it on a desktop
cargo run -p maplibre-demo
More information about running the demos on different platforms can be found here.
Rust Setup
Install rustup because this is the recommended way of setting up Rust toolchains.
The toolchain will be automatically downloaded when building this project. See ./rust-toolchain.toml for more details about the toolchain.
API Documentation
This generates the documentation for this crate and opens the browser. This also includes the documentation of every dependency.
cargo doc --open
You can also view the up-to-date documentation here.
Book
The maplibre-rs book features a high-level overview over the project from a user and development perspective.
RFCs
We established an RFC process which must be used to describe major changes to maplibre-rs. Current RFCs can be browsed in the book.
Acknowledgements
The renderer of maplibre-rs is heavily based on the renderer of bevy. Bevy's renderer was forked into this project in order to have a solid and generic base.
Articles and talks about maplibre-rs
- Aug. 2022 - maplibre-rs: toward portable map renderers
Explore related projects
freeCodeCamp/freeCodeCamp
freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.
459,002 starsdonnemartin/system-design-primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
377,613 starsreact/react
The library for web and native user interfaces.
252,524 starsvuejs/vue
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
212,532 stars