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 Map icon created by Freepik: https://www.flaticon.com/free-icon/map_1865153 – 0:00 Intro 2:11 A Brief Aside Into The South Korean Tech Scene 3:41 Open Source Mapping Software 6:21 What Makes Mapping Software Hard? 9:15 Data Integration And Map Data Standards 13:17 Supporting Multiple Mobile Platforms 17:21 Managing A Rust Core With Native UIs 22:37 Making Truly Custom Mapping Applications 27:01 Managing the Mismatch Between Rust and Kotlin's Programming Models 36:33 Splitting the Codebase Among Rust, Swift and Kotlin 41:46 Real-World Applications for Ferrostar 45:14 Developing Map Apps on a Budget 46:40 Dealing with WASM 55:59 Managing Versioning Across 3 Platforms 57:31 Getting Started With Ferrostar 59:49 Outro