184 episodes
- Allen Wyma talks with Jonas Kruckenberg from Mainmatter about migrating production C and C++ codebases to Rust and the C to Rust Migration Book. They discuss incremental migration, refactoring legacy code, designing safe FFI boundaries, and testing undefined behavior.
Contributing to Rustacean Station
Rustacean Station is a community project; get in touch with us if you’d like to suggest an idea for an episode or offer your services as a host or audio editor!
Twitter: @rustaceanfm
Discord: Rustacean Station
Github: @rustacean-station
Email: hello@rustacean-station.org
Timestamps
[@00:00] - Intro
[@00:10] - Welcome and introducing Jonas Kruckenberg
[@01:52] - From JavaScript and Tauri to Rust, k23, and Mainmatter
[@04:41] - Incremental migration versus a complete rewrite
[@07:51] - The C to Rust Migration Book
[@13:11] - Why starting with leaf modules can fail
[@15:31] - Refactoring C before rewriting it in Rust
[@17:26] - Building safe Rust interfaces over C linked lists
[@22:06] - Undefined behavior and legacy FFI code
[@23:29] - Porting strcmp calls with null pointers
[@25:24] - Testing tools, assertions, and the FFI trust boundary
[@27:39] - Finding the book and getting in touch
[@28:25] - Memory safety and the future of Rust
Referenced resources
The C to Rust Migration Book
Tauri
k23
Credits
Intro Theme: Aerocity
Audio Editing: Plangora
Hosting Infrastructure: Jon Gjengset
Show Notes: Plangora
Hosts: Allen Wyma - Allen Wyma talks with Costa Alexoglou and Iason Paraskevopoulos, creators of Hopp, a tool that enables remote pair programming sessions. Hopp is built with Tauri and Rust, and is open source.
Contributing to Rustacean Station
Rustacean Station is a community project; get in touch with us if you’d like to suggest an idea for an episode or offer your services as a host or audio editor!
Twitter: @rustaceanfm
Discord: Rustacean Station
Github: @rustacean-station
Email: hello@rustacean-station.org
Timestamps
[@0:00] - Meet Costa Alexoglou and Iason Paraskevopoulos
[@3:12] - The problem with existing tools: high latency and poor quality
[@7:28] - Why Tauri was chosen (and its limitations)
[@10:28] - Moving from WebKit to a custom Rust WebRTC implementation
[@14:34] - How Hopp handles ultra-low latency screen sharing
[@22:50] - Technical deep dive: Bypassing browser limitations on macOS
[@31:18] - Roadmap: Migrating fully to Rust and future integrations
[@34:25] - Linux support challenges and distribution
[@41:03] - Using iced for Rust-based UI rendering
[@42:14] - Closing thoughts
Credits
Intro Theme: Aerocity
Audio Editing: Plangora
Hosting Infrastructure: Jon Gjengset
Show Notes: Plangora
Hosts: Allen Wyma - Jon and Ben discuss the highlights of the Rust 2024
Edition.
Contributing to Rustacean Station
Rustacean Station is a community project; get in touch with us if you’d like to suggest an idea for an episode or offer your services as a host or audio editor!
Twitter: @rustaceanfm
Discord: Rustacean Station
Github: @rustacean-station
Email: hello@rustacean-station.org
Timestamps & referenced resources
[@03:05] - RPIT lifetime capture rules
[@08:00] - let chains in if and while
if let temporary scope
Mara’s post on “super let”
Tail expression temporary scope
[@19:15] - Match ergonomics reservations
[@24:49] - Unsafe extern blocks
[@29:15] - Unsafe attributes
[@32:03] - unsafe_op_in_unsafe_fn warning
[@34:51] - Disallow references to static mut
[@39:20] - Never type fallback change
[@43:33] - Macro Fragment Specifiers
[@47:47] - gen keyword
[@49:36] - Changes to the prelude
[@50:32] - Add IntoIterator for Box<[T]>
[@56:03] - Newly unsafe functions
[@58:51] - Rust-version aware Cargo resolver
[@1:03:03] - Cargo table and key name consistency
[@1:03:57] - Reject unused inherited default-features
[@1:05:37] - Rustdoc combined doctests
[@1:07:13] - Rustdoc nested include! change
[@1:09:19] - The rustfmt style edition
Credits
Intro Theme: Aerocity
Audio Editing: synchis
Hosting Infrastructure: Jon Gjengset
Show Notes: Jon Gjengset
Hosts: Jon Gjengset and Ben Striegel - Jon and Ben discuss the highlights of the 1.85 through 1.88 releases of Rust.
Contributing to Rustacean Station
Rustacean Station is a community project; get in touch with us if you’d like to suggest an idea for an episode or offer your services as a host or audio editor!
Twitter: @rustaceanfm
Discord: Rustacean Station
Github: @rustacean-station
Email: hello@rustacean-station.org
Timestamps & referenced resources
[@01:11] - Rust 1.85
[@02:05] - async closures
RFC 3668
Stabilization report
[@07:45] - Hiding trait implementations from diagnostics
[@09:43] - FromIterator and Extend for tuples
[@12:10] - Updates to std::env::home_dir()
Deprecation discussion
Deprecation PR
Originally abandoned fix
Undeprecation
[@15:19] - Stabilized APIs
[@15:30] - number::midpoint
[@16:18] - Waker::noop
[@17:49] - ptr::fn_addr_eq
[@20:10] - Changelog deep-dive
[@20:10] - De-duplicate and improve definition of c_char
[@22:56] - More constification
[@23:51] - Rust 1.85.1
[@24:46] - Rust 1.86
[@25:24] - Trait upcasting
[@30:49] - HashMaps and slices now support indexing multiple elements mutably
[@33:50] - Allow safe functions to be marked with the #[target_feature] attribute
[@36:21] - Debug assertions that pointers are non-null when required for soundness
[@39:48] - Make missing_abi lint warn by default
[@40:55] - Target deprecation warning for 1.87.0
[@42:25] - Stabilized APIs
[@42:25] - {float}::next_up
[@44:55] - Vec::pop_if
[@46:41] - Changelog deep-dive
[@46:41] - Changing -O to opt-level=3
[@47:47] - Optimized rustc binaries for aarch64
[@49:04] - Deprecate cargo --token
[@49:43] - No more “did you mean” in Cargo
[@50:14] - Sans-serif in rustdoc
[@50:45] - Rust 1.87
[@51:27] - Anonymous pipes
[@53:06] - Safe architecture intrinsics
Update the standard library to Rust 2024
[@55:00] - asm! jumps to Rust code
[@57:06] - Precise capturing in impl Trait in trait definitions
The Captures “trick”
Talk on impl Trait
[@58:45] - Stabilized APIs
[@58:45] - Vec::extract_if
[@1:00:13] - <[T]>::split_off
[@1:01:47] - OsStr::display
[@1:03:40] - <uN>::cast_signed
[@1:04:41] - <uN>::is_multiple_of
[@1:05:31] - <uN>::unbounded_shl
[@1:06:20] - TryFrom<Vec<u8>> for String
[@1:06:46] - Box<MaybeUninit<T>>::write
[@1:08:23] - String::extend_from_within
[@1:07:46] - Changelog deep-dive
[@1:07:46] - Actually un-deprecate home_dir
[@1:10:41] - Cargo SBOM support (RFC 3553)
[@1:11:48] - More Cargo ANSI sequences
Credits
Intro Theme: Aerocity
Audio Editing: synchis
Hosting Infrastructure: Jon Gjengset
Show Notes: Jon Gjengset
Hosts: Jon Gjengset and Ben Striegel - Jon and Ben discuss the highlights of the 1.88 through 1.90 releases of Rust.
Contributing to Rustacean Station
Rustacean Station is a community project; get in touch with us if you’d like to suggest an idea for an episode or offer your services as a host or audio editor!
Twitter: @rustaceanfm
Discord: Rustacean Station
Github: @rustacean-station
Email: hello@rustacean-station.org
Timestamps & referenced resources
[@00:26] - Rust 1.88
[@00:26] - Let chains
The if let temporary scope
[@09:09] - Naked functions
[@11:55] - Boolean configuration
[@14:15] - Cargo automatic cache cleaning
[@17:52] - Stabilized APIs
[@17:52] - hint::select_unpredictable
[@21:16] - <[T]>::as_chunks
[@22:25] - Default for *const T
[@23:13] - HashMap::extract_if
[@23:43] - More metadata from Span
[@24:48] - Changelog deep-dive
[@24:48] - De-stabilize #[bench]
[@26:55] - --no-capture
[@28:31] - Rust 1.89
[@28:40] - Explicitly inferred arguments to const generics
[@30:14] - Mismatched lifetime syntaxes lint
[@35:29] - More x86 target features
[@36:33] - Cross-compiled doctests
[@38:31] - i128 and u128 in extern "C" functions
[@40:38] - Demoting x86_64-apple-darwin to Tier 2
Platform support policy
[@42:18] - Standards Compliant C ABI on wasm32-unknown-unknown
More about the ABI changes
[@46:05] - Stabilized APIs
[@46:05] - File::lock
[@48:34] - Changelog deep-dive
[@48:40] - aarch64 frame pointers
Why do frame pointers matter?
[@49:59] - Allow storing format_args! in variable
Behind the scenes of format_args!
[@51:38] - rustdoc sidebar on mobile
[@52:14] - Rust 1.90
[@52:14] - LLD is now the default linker on x86_64-unknown-linux-gnu
PR with lots of linked resources
rustc performance diff with lld
[@1:01:26] - Cargo adds native support for workspace publishing
[@1:03:03] - Stabilized APIs
[@1:03:26] - u{n}::saturating_sub_signed
[@1:04:20] - Changelog deep-dive
[@1:04:20] - home_dir fall back if HOME is set but empty
Credits
Intro Theme: Aerocity
Audio Editing: synchis
Hosting Infrastructure: Jon Gjengset
Show Notes: Jon Gjengset
Hosts: Jon Gjengset and Ben Striegel
More Technology podcasts
Trending Technology podcasts
About Rustacean Station
Come journey with us into the weird, wonderful, and wily world of Rust.
Podcast websiteListen to Rustacean Station, Understood: The Big Bet and many other podcasts from around the world with the radio.net app

Get the free radio.net app
- Stations and podcasts to bookmark
- Stream via Wi-Fi or Bluetooth
- Supports Carplay & Android Auto
- Many other app features
Get the free radio.net app
- Stations and podcasts to bookmark
- Stream via Wi-Fi or Bluetooth
- Supports Carplay & Android Auto
- Many other app features


Rustacean Station
Scan code,
download the app,
start listening.
download the app,
start listening.



























