Back

Explore every episode of the podcast New Rustacean

Dive into the complete episode list for New Rustacean. Each episode is cataloged with detailed descriptions, making it easy to find and explore specific topics. Keep track of all episodes from your favorite podcast and never miss a moment of insightful content.

Rows per page:

1–50 of 103

TitlePub. DateDuration
Meta 3: Happy Coding27 May 201900: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.3524 May 201900:18:18

WASI, Option::copied, and the future of async/await syntax!

Show Notes Sponsors

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.3223 Jan 201900: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 Sponsors

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
e002: Something borrowed, something… moved?12 Oct 201500: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 Notes

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 Things03 Oct 201500:17:06
Document all the things!

Subject: Documentation in general, and rustdoc and cargo doc in particular.

Follow/Support Notes

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 201500: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 II14 Jan 201900: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 Sponsors

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 I07 Jan 201900: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 Sponsors

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: Integer3231 Dec 201800:41:01
Show Notes

Things we mentioned on the show:

Sponsors

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 201800:21:27

An intro to unsafe Rust and Rust’s idea of safety.

Show Notes Errata

A 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 Examples Borrow-checked code in unsafe let mut f = String::from("foo"); unsafe { let borrowed = &mut f; let borrow_again = &f; println!("{}", borrowed); // This would be unsafe and throw an error: // println!("{}", borrow_again); }

(See it in a playground)

Safely mutating a raw pointer let f = Box::new(12); let mut g = Box::into_raw(f); g = &mut (g + 10);

(See it in a playground)

Sponsors

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.3016 Nov 201800:17:33

Procedural macros, better paths, and the Rust 2018 beta!

Show Notes

Rust 1.29:

Rust 1.30:

Sponsors

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
Bonus 12: Translating Between Languages24 Oct 201800:15:43

Musings inspired by a project translating TypeScript to Rust

Sponsors

Thanks 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: Burnout23 Sep 201800: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.2816 Aug 2018

Stable `#[global_allocator]`, more Rust 2018 Edition schedule news, video learning resources, and a static site generator!

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
e026: Functional Programming Ideas25 Jul 201800:18:33

How Rust both borrows from FP languages and charts its own, very different course.

Show Notes

Sponsored by Parity Technologies! Parity is hiring Rust developers so if you’re interested, you should check out their job listings!

Links 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: bindgen and cbindgen18 May 201900:18:10

Automatic generation of FFI types between Rust and C APIs.

Show Notes Sponsors

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 III05 Jul 201800:20:36

Closure traits, `impl trait`, `dyn trait`, and object safety!

Show Notes

Sponsored by Parity Technologies! Parity is hiring Rust developers so if you’re interested, you should check out their job listings!

Links Example

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.2730 Jun 201800: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 II20 Jun 201800:20:33

Operators as sugar for traits, traits as generic constraints, monomorphization, and universal and existential types.

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: The wasm tools01 Jun 201800:15:46

wasm intro, wasm-bindgen, and wasm-pack

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.2615 May 201800: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 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: Traits Deep Dive, Part I28 Apr 201800:20:33

Defining and using your own traits, using other crates' traits, and the orphan rule.

Show Notes

Traits—

Also of interest: specialization:

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.2531 Mar 201800:14:12

Paths and matches and SIMD, cargo new changes, and tons of community-driven learning materials!

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
Bonus 10: “Becoming a Contributor”17 Mar 201800: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.2402 Mar 201800: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: Serde10 Feb 201800: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 Dive14 May 201900:25:18

Exposing Rust types and functions to C API consumers.

Show Notes

It’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:

  1. add_in_rust
  2. Strings
    1. concat_strings
    2. free_rust_string
  3. Point
    1. point_translate
  4. union
  5. OpaquePoint
    1. opaque_point_new
    2. opaque_point_translate
    3. opaque_point_free
Links Sponsors

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 Sync01 Feb 201800: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 221 Jan 201800: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 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 113 Jan 201800:31:57

Growing Diesel's community, self-imposed technical challenges, and some of the ways Diesel has contributed to the Rust ecosystem.

Show notes Sponsors Become a sponsor Contact
News: Rust 1.2306 Jan 201800:16:54
Show notes Sponsors Become a sponsor Contact
Increasing Rust's Reach: Matt Gathu30 Dec 201700:21:13

Matt’s experience porting wget to 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
Increasing Rust's Reach: Lee Baillie26 Dec 201700:24:06

Lee’s experience designing a new website for 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
Increasing Rust's Reach: Anna Liao21 Dec 201700: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 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: Katie Nolan15 Dec 201700:05:21
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
RBR 2017: Ben Beckwith15 Dec 201700:05:42
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
RBR 2017: Andrew Hobden13 Dec 201700: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 201900:18:37

Item visibility and pub(<restricted>) as API design tools.

Show Notes

The 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 Sponsors

Thanks 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 Wilcox12 Dec 201700:06:30
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
RBR 2017: Matthias Endler12 Dec 201700:06:30
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
RBR 2017: Ben Striegel10 Dec 201700:06:10
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
RBR 2017: Holden Marcsisin09 Dec 201700:07:07
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
RBR 2017: Esty Thomas08 Dec 201700:06:04
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
RBR 2017: Thomas Gideon06 Dec 201700:05:35
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
RBR 2017: Tom Kriezkowski26 Nov 201700:05:00

A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.

News: Rust 1.21 and 1.2224 Nov 201700:15:53

Quality of life improvements, Failure, wasm, and rustdoc fun.

Links and 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
RBR 2017: Jess Saxeter19 Nov 201700:05:17
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
RBR 2017: Pete Lyons18 Nov 201700:04:54

A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.

News: Rust 1.33 and 1.3420 Apr 201900:18:58

Moar const fn, some Pin, and alternative Cargo registries!

Show Notes Sponsors

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
RBR 2017: Arun Kulsheshthra15 Nov 201700:05:27
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
© My Podcast Data