Explore every episode of the podcast New Rustacean
| Title | Pub. Date | Duration | |
|---|---|---|---|
| Meta 3: Happy Coding | 27 May 2019 | 00:16:35 | |
A story and a dream (and the promise of Rust): the final episode of New Rustacean! Show Notes Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Contact
| |||
| News: Rust 1.35 | 24 May 2019 | 00:18:18 | |
WASI, Option::copied, and the future of async/await syntax! Show Notes
Thanks to Parity for sponsoring the show and hiring Rust developers! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| News: Rust 1.32 | 23 Jan 2019 | 00:18:03 | |
dbg!, unified paths, more places you can use Self, and a bunch of const fn stabilizations—plus some neat community highlights! Show Notes SponsorsThanks to Parity for sponsoring the show again. Go check out their Rust jobs! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| e002: Something borrowed, something… moved? | 12 Oct 2015 | 00:17:12 | |
Something borrowed, something… moved? Subject: The struct data type constructor, and the basics of Rust’s “ownership” concept and “borrowing” and “moving”. Follow/Support
Today’s episode discusses, and the associated source code demonstrates, a few basic behaviors of structs… including borrowing! After taking a short look at one of Rust’s basic approaches to creating new types, we dive into a fairly thorough overview of how borrowing works in fairly run-of-the-mill Rust code. This is a basic introduction, and as such I’m not getting into things like heap-allocated memory (Box) or dealing with move semantics with threads or closures. (I haven’t actually figured those out well enough yet to write something like this for them!) As usual, you’ll want to have the src open to see what I’m doing with the components documented below. Links
| |||
| e001: Document All the Things | 03 Oct 2015 | 00:17:06 | |
Document all the things!
Subject: Documentation in general, and rustdoc and cargo doc in particular. Follow/Support
This is a mostly-empty module, and it is intended as such. Why? Well, because almost all the sample code exists in these comments, which serve as the show notes. If you listen to the episode or take a look at the source files, you’ll see how it works! The components below are included solely so you can see how the docstrings work with each kind of thing. Make sure to click on the names of the items: there is more documentation there. Again, take a look at the source to see how it looks in the context of a file module. Note that this module-level docstring uses rather than `///`-style comments. This is because this docstring is documenting the item which contains it, rather than the following item. Per [Rust RFC 505][1], the preferred approach is always to use the "following" form (`///`) rather than the "containing" form (), except for module-level docs like these. (I will be following RFC 505 throughout.) Links
| |||
| e000: Hello, world! | 24 Sep 2015 | 00:17:11 | |
Hello, World!
Subject: The host, the language, and the show! Today’s show is pretty meta. You can skip it if you just want to start with something more technical, but I thought listeners might want to know a little about the origins of the show and my own background, so that’s what you get today. Next time, we’ll be tackling the rustdoc command in some detail. This is an almost-empty module: we aren’t doing any fun code samples yet. I included the standard “Hello, world!” example, because how could I not? However, at some point in the future, there will be much more detailed code samples available:
Hopefully, the result will be a pretty helpful bunch of side content along with the audio of the podcast itself. | |||
| News: Rust 1.31 and the 2018 Edition, Part II | 14 Jan 2019 | 00:22:42 | |
Stabilizing rustfmt, clippy, tool lints, and const fn (all in both editions!), and the 2018 Edition-specific features: syntax changes and non-lexical lifetimes! Show Notes
Thanks to Parity for sponsoring the show again. Go check out their Rust jobs! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| News: Rust 1.31 and the 2018 Edition, Part I | 07 Jan 2019 | 00:20:54 | |
An overview of the edition, and some of the improvements that are available in both the 2015 and 2018 editions: better lifetime elision, some Cargo features, and some library stabilizations. Show Notes
Thanks to Parity for sponsoring the show again. Go check out their Rust jobs! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| Interview: Integer32 | 31 Dec 2018 | 00:41:01 | |
Show Notes
Things we mentioned on the show:
Thanks to Manning for sponsoring this episode; don’t forget to grab some of their content at 40% off using the code podnewrust18! Thanks to Parity for sponsoring the show again. Go check out their Rust jobs! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| e027: Trust Me; I Promise! | 01 Dec 2018 | 00:21:27 | |
An intro to unsafe Rust and Rust’s idea of safety. Show Notes ErrataA quick correction: on the show I said that a trait needed to be unsafe when it had an unsafe fn method. This isn’t correct: safe traits can have unsafe methods, and unsafe traits can exist without any methods at all (as implied by my reference to Send and Sync). You can see this in practice in the following example, which compiles just fine! trait ASafeTrait { unsafe fn unsafe_method() {} } unsafe AnUnsafeTrait {}The idea of an unsafe trait is that it has some conditions which you must uphold to safely implement it – again, just as with Send and Sync. In the case of most traits, this will be because some trait method has invariants it needs to hold else it would cause undefined behavior. For another example of this, see the (unstable as of the time of recording) trait std::iter::TrustedLen. Thanks to Rust language team member @centril for noting this to me after listening when I was recording the show live! Links
Thanks to Parity for sponsoring the show again. Go check out their Rust jobs! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| News: Rust 1.29 and 1.30 | 16 Nov 2018 | 00:17:33 | |
Procedural macros, better paths, and the Rust 2018 beta! Show NotesRust 1.29: Rust 1.30: SponsorsThanks to Parity for sponsoring the show again. Go check out their Rust jobs! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| Bonus 12: Translating Between Languages | 24 Oct 2018 | 00:15:43 | |
Musings inspired by a project translating TypeScript to Rust SponsorsThanks to Manning for sponsoring the show and giving all of you a 40%-off discount on their whole store (but especially Carol Nichols’ and Jake Goulding’s Rust in Motion video content and the Rust in Action MEAP!) at deals.manning.com/new-rustacean Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
#[doc(include = “../docs/bonus/translating-between-languages.md”)] pub struct Script; | |||
| Bonus 11: Burnout | 23 Sep 2018 | 00:27:11 | |
What burnout is, the many ways it can happen to us, and what we can do about it. Show Notes Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| News: Rust 1.28 | 16 Aug 2018 | ||
Stable `#[global_allocator]`, more Rust 2018 Edition schedule news, video learning resources, and a static site generator! Show Notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| e026: Functional Programming Ideas | 25 Jul 2018 | 00:18:33 | |
How Rust both borrows from FP languages and charts its own, very different course. Show NotesSponsored by Parity Technologies! Parity is hiring Rust developers so if you’re interested, you should check out their job listings! Links
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| CYSK: bindgen and cbindgen | 18 May 2019 | 00:18:10 | |
Automatic generation of FFI types between Rust and C APIs. Show Notes
Thanks to Parity for sponsoring the show and hiring Rust developers! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| e025: Traits Deep Dive, Part III | 05 Jul 2018 | 00:20:36 | |
Closure traits, `impl trait`, `dyn trait`, and object safety! Show NotesSponsored by Parity Technologies! Parity is hiring Rust developers so if you’re interested, you should check out their job listings! Links
You can see all of the pieces of the final example described in the show here (and the module has the required definitions for Point). let points = vec![ Point { x: 1.0, y: 2.0 }, Point { x: 12.0, y: 4.3 }, Point { x: -5.4, y: 18.7 }, ]; # let origin = Point::default(); # // This is the version we start with. It works fine, but it's not elegant. let distances_inline: Vec<f32> = points .iter() .map(|point| { let change = point - &origin; (change.x.powi(2) + change.y.powi(2)).sqrt() }) .collect(); # // This version is *much* cleaner! let distances_impl: Vec<f32> = points.iter().map(distance_from_impl(&origin)).collect(); Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| News: Rust 1.27 | 30 Jun 2018 | 00:15:49 | |
Stable SIMD, `dyn trait`, `rustfix` and the alpha release of the Rust 2018 Edition Preview! Show Notes Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| e024: Traits Deep Dive, Part II | 20 Jun 2018 | 00:20:33 | |
Operators as sugar for traits, traits as generic constraints, monomorphization, and universal and existential types. Show Notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| CYSK: The wasm tools | 01 Jun 2018 | 00:15:46 | |
wasm intro, wasm-bindgen, and wasm-pack Show Notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| News: Rust 1.26 | 15 May 2018 | 00:17:27 | |
impl trait, match on references, Results from main, and more. A good way to mark three years since Rust 1.0! Show Notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| e023: Traits Deep Dive, Part I | 28 Apr 2018 | 00:20:33 | |
Defining and using your own traits, using other crates' traits, and the orphan rule. Show NotesTraits— Also of interest: specialization:
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| News: Rust 1.25 | 31 Mar 2018 | 00:14:12 | |
Paths and matches and SIMD, cargo new changes, and tons of community-driven learning materials! Show Notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| Bonus 10: “Becoming a Contributor” | 17 Mar 2018 | 00:31:02 | |
My Rust Belt Rust 2017 talk! Show Notes Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| News: Rust 1.24 | 02 Mar 2018 | 00:18:28 | |
Performance wins, incremental compilation, and the Rust 2018 Roadmap and Epoch. Show Notes Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| CYSK: Serde | 10 Feb 2018 | 00:12:29 | |
The library for serialization and deserialization in Rust. Show Notes Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| e031: FFI Deep Dive | 14 May 2019 | 00:25:18 | |
Exposing Rust types and functions to C API consumers. Show NotesIt’s impossible to make the declarations below follow the order I talked through them on the recording without also making them horrible to read, so just use this outline instead:
Thanks to Parity for sponsoring the show and hiring Rust developers! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| e023: Send and Sync | 01 Feb 2018 | 00:20:36 | |
The “marker traits” that Rust uses for safe concurrency. Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| Interview – Diesel 1.0, with Sean Griffin – Part 2 | 21 Jan 2018 | 00:31:01 | |
Getting Diesel to 1.0, writing docs and exposing problems with the API, improving Diesel in the future, and thinking about API design for open source libraries in general. Show notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| Interview – Diesel 1.0, with Sean Griffin – Part 1 | 13 Jan 2018 | 00:31:57 | |
Growing Diesel's community, self-imposed technical challenges, and some of the ways Diesel has contributed to the Rust ecosystem. Show notes
| |||
| News: Rust 1.23 | 06 Jan 2018 | 00:16:54 | |
Show notes
| |||
| Increasing Rust's Reach: Matt Gathu | 30 Dec 2017 | 00:21:13 | |
Matt’s experience porting wget to Rust. Show Notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| Increasing Rust's Reach: Lee Baillie | 26 Dec 2017 | 00:24:06 | |
Lee’s experience designing a new website for Rust. Show Notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| Increasing Rust's Reach: Anna Liao | 21 Dec 2017 | 00:29:28 | |
Anna's experience learning Rust while porting a Raspberry Pi Python project as part of the Increasing Rust’s Reach 2017 program. Show Notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| RBR 2017: Katie Nolan | 15 Dec 2017 | 00:05:21 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| RBR 2017: Ben Beckwith | 15 Dec 2017 | 00:05:42 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| RBR 2017: Andrew Hobden | 13 Dec 2017 | 00:06:00 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| e030: Can You See Me Now? | 27 Apr 2019 | 00:18:37 | |
Item visibility and pub(<restricted>) as API design tools. Show NotesThe easiest and most effective way to understand the example in this case will simply be to look directly at the source code. You can read the docs for each of the nested modules, but you’ll be doing a lot of navigating around for that. Also, I am using Cargo’s --document-private-items flag, so that you can see all the items in all the modules, even those which are not public, but note that usually you would not see docs for those! Links SponsorsThanks to Manning for sponsoring the show and giving all of you a 40%-off discount on their whole store (but especially their WebAssembly in Action MEAP) at deals.manning.com/new-rustacean! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| RBR 2017: Parry Wilcox | 12 Dec 2017 | 00:06:30 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| RBR 2017: Matthias Endler | 12 Dec 2017 | 00:06:30 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| RBR 2017: Ben Striegel | 10 Dec 2017 | 00:06:10 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| RBR 2017: Holden Marcsisin | 09 Dec 2017 | 00:07:07 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| RBR 2017: Esty Thomas | 08 Dec 2017 | 00:06:04 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| RBR 2017: Thomas Gideon | 06 Dec 2017 | 00:05:35 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| RBR 2017: Tom Kriezkowski | 26 Nov 2017 | 00:05:00 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| News: Rust 1.21 and 1.22 | 24 Nov 2017 | 00:15:53 | |
Quality of life improvements, Failure, wasm, and rustdoc fun. Links and Notes
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| RBR 2017: Jess Saxeter | 19 Nov 2017 | 00:05:17 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| RBR 2017: Pete Lyons | 18 Nov 2017 | 00:04:54 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||
| News: Rust 1.33 and 1.34 | 20 Apr 2019 | 00:18:58 | |
Moar const fn, some Pin, and alternative Cargo registries! Show Notes SponsorsThanks to Parity for sponsoring the show and hiring Rust developers! Patreon Sponsors
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!) Become a sponsor Contact
| |||
| RBR 2017: Arun Kulsheshthra | 15 Nov 2017 | 00:05:27 | |
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28. | |||