RustFest Interviews Triple Feature: Rust for AAA Game Development; Async Foundations with `async-std`; and Powerful Concurrency Primitives with `crossbeam` Jan. 22, 2020

from Rustacean Station·

Three more interviews from RustFest 2019: Jake Shadle on using Rust for high- performance game engines at Embark, applying lessons learned from working on EA DICE’s Frostbite engine; Yoshua Wuyts on async-std and Rust’s async ecosystem; and Stjepan Glavina on crossbeam, Rust’s foundational library for powerful concurrency primitives.



Three more interviews from RustFest 2019: Jake Shadle on using Rust for high- performance game engines at Embark, applying lessons learned from working on EA DICE’s Frostbite engine; Yoshua Wuyts on async-std and Rust’s async ecosystem; and Stjepan Glavina on crossbeam, Rust’s foundational library for powerful concurrency primitives. 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:00] Part 1: Game Development @ Embark Studios w/ Jake Shadle [@01:25] - What is yours (and Embark’s) background in game development? [@02:14] - What is the relevance of the Frostbite engine and what is your experience with it? [@04:15] - What makes you think that Rust as a language is suitable for game development? [@06:13] - How is parallelism employed in a game engine on the scale of Frostbite? [@07:07] - Where is the Rust library ecosystem lacking for your use case, and what crates are you making use of? [@11:13] - Why is Embark interested in WebAssembly? [@14:20] - How can someone get in touch or learn more about Embark? embark.dev Inside Rust at Embark [@15:09] Part 2: async-std w/ Yoshua Wuyts [@15:48] - How much of the Rust standard library is async-std intended to emulate? [@17:12] - Is there anything from async-std that ought to be upstreamed into the standard library? [@19:20] - Does async-std run into any conflicts with the types or traits defined in futures-rs or the standard library? [@22:21] - How complete or incomplete is Rust’s async ecosystem and async language support? async-trait: a procedural macro for providing async trait methods on stable Rust [@26:21] - How close is async-std to being a drop-in replacement for the standard library? [@28:32] - What’s next for the development of async-std? [@30:07] - With the advent of async-std version 1.0, what would an eventual 2.0 release look like? [@32:09] - Who is using async- std? [@32:54] - How can someone get in touch or get involved? async.rs github.com/async-rs [@34:02] Part 3: crossbeam w/ Stjepan Glavina [@34:29] - What is crossbeam and what is its history? [@36:41] - What is epoch-based garbage collection, and why would a Rust user want to use it? [@38:17] - How does epoch-based garbage collection compare to std::sync::Arc? [@41:30] - What is your background in concurrent programming? [@42:59] - How do crossbeam’s channels compare to those in the standard library? [@44:33] - How much research was involved in writing crossbeam? [@45:35] - Do crossbeam’s channels provide a selection interface? [@46:34] - What other primitives does crossbeam provide? [@48:37] - How confident are you in the correctness of crossbeam’s implementation? [@49:46] - How is crossbeam related to rayon and async-std? [@51:53] - What’s next for crossbeam? Credits Intro Theme: Aerocity Audio Editing: Zoran Zaric Hosting Infrastructure: Jon Gjengset Show Notes: Ben Striegel, Zoran Zaric Hosts: Ben Striegel