Mapping is a hugely complex task to take on. Even if you moved as much of the data-management as you can out to 3rd-party services, you’d still have a tonne of work to do weaving together map tiles, routing information, GPS data, points of interest, search and more. And as if that wasn’t enough, you’d probably want that software to work on a whole range of platforms, so you have to build something that works on iOS, Android and more. It’s little wonder that the space is dominated by a few closed-source projects owned by huge companies with near-limitless resources.
But that doesn’t mean the problem can’t be cracked as an open-source project. This week we look at the open source map library Ferrostar. Joining me to discuss it is the project’s lead developer, Ian Wagner, as we explore the problem space and dive down into Ferrostar’s architecture: A core Rust library serving a suite of custom UI shells written in Kotlin, Swift, WASM and TypeScript.
Along the way there are tips for anyone attempting to build a map, or wanting to interop Rust with other languages.
–
Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices
Support Developer Voices on YouTube: https://www.youtube.com/@developervoices/join
Ferrostar on Github: https://github.com/stadiamaps/ferrostar
Ferrostar user guide: https://stadiamaps.github.io/ferrostar/
MapLibre: https://maplibre.org/
Project OSRM: https://project-osrm.org/
Dioxus (Rust UI framework): https://dioxuslabs.com/
Slint: https://slint.dev/
UniFFI (repo): https://github.com/mozilla/uniffi-rs
UniFFI (user guide): https://mozilla.github.io/uniffi-rs/latest/
Beeline (navigation device): https://beeline.co/
Ian on Mastodon: https://fosstodon.org/@ianthetechie
Ian on Twitter: https://x.com/ianthetechie
Kris on Mastodon: http://mastodon.social/@krisajenkins
Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/
Kris on Twitter: https://twitter.com/krisajenkins