Discover the future of software from the people making it happen.Listen to some of the smartest developers we know talk about what they're working on, how they're trying to move the industry forward, and what you can learn from it. You might find the solution to your next architectural headache, pick up a new programming language, or just hear some good war stories from the frontline of technology.Join your host Kris Jenkins as we try to figure out what tomorrow's computing will look like the best way we know how - by listening directly to the developers' voices.

Multiplatform Maps Built As Layers on Rust (with Ian Wagner)

August 21, 2024 1:01:18 88.27 MB Downloads: 0

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