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!
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?
[@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?
- [@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?
[@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