Beta

Explore every episode of 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

Pub. DateTitleDuration
12 Oct 2015e002: Something borrowed, something… moved?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

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

24 May 2019News: Rust 1.3500: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

28 Feb 2019Bonus 13: I Still Make Silly Mistakes00:12:13

A story about parsing command-line arguments manually and some thoughts on “rookie mistakes.”

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

07 Jan 2019News: Rust 1.31 and the 2018 Edition, Part I00: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

01 Jul 2017CYSK: Rocket00:17:32

An accessible, well-designed web framework in Rust!

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

15 Dec 2017RBR 2017: Katie Nolan00:05:21
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
20 Apr 2019News: Rust 1.33 and 1.3400: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

09 Jan 2017CYSK: quick-xml00:08:38
A pull-parser for reading and writing XML.

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

04 Apr 2016e013: Staying alive00:17:40

Reasoning about and using lifetimes in Rust (and why we need them)

Notes

Lifetimes are our way of reasoning about how long a given piece of data is
available and safe to use in Rust. The reason we don't have the dangling
pointer problem is that we do have lifetimes instead. They're not magic,
they're just a bit of semantics and syntax that let us specify the rules for
how long any given item lives, and how long references to data must be valid.

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

12 Dec 2017RBR 2017: Parry Wilcox00:06:30
A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
15 May 2018News: Rust 1.2600: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

30 Jun 2018News: Rust 1.2700: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

20 Aug 2016Bonus 6: It doesn‘t have to be sexy00:11:27

Building (and celebrating) all the little, not-so-glorious pieces of the Rust ecosystem.

Notes

We love the Rust compiler team. But there’s more to the Rust community, and more required for Rust to be as great as it can be, than just the language itself. We need to celebrate other libraries, and even the small ones, just as much (and maybe more) than changes to the language. We need to dig in and work on building the whole ecosystem. (The good news is, we are!)

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

24 Oct 2018Bonus 12: Translating Between Languages00: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;

08 Nov 2015e005: Allocate it where?00:18:30

Allocate it where?

Subject: Returning functions from other functions, and thinking about the stack, the heap, and reference types.

  • MP3
  • Notes

    This episode, we look at returning functions from other functions, and as part of that discuss some basics about the stack and the heap—and why we need to care about them for returning functions.

    The functions themselves are not especially interesting; they just show you the basic form you use to return functions from other functions, and how to then use them in another function. You’ll want to take a detailed look instead at the documentation for each (or just read the source!), because that’s where the meat of the discussion in this week’s code is.

    Links

    Sponsors

    Become a sponsor

    Follow

    16 Sep 2017CYSK: Rayon00:14:11

    Safe, threaded, parallel code in Rust!

    Rayon

    Other things referenced on the show

    https://www.newrustacean.com/show_notes/e016/index.html ["embarassingly parallel"]: https://en.wikipedia.org/wiki/Embarrassingly_parallel

    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

    15 Feb 2016Interview 1::Part 1 – Sean Griffin00:24:50

    Sean Griffin on Rust, ORMs, and Web Frameworks

    Notes

    Chris chats with Sean Griffin about his programming background and initial experience with Rust, Rust's appeal, and what he's doing with Diesel and some of his plans for a new web framework in Rust.

    Links

    Sponsors

    • Aleksey Pirogov
    • Chris Palmer
    • Derek Morr
    • Hamza Sheikh
    • Leif Arne Storset
    • Luca Schmid
    • Micael Bergeron
    • Ralph Giles ("rillian")
    • reddraggone9
    • Ryan Ollos
    • William Roe

    Become a sponsor

    Follow

    21 Mar 2016e012: I'm not familiar with that expression00:16:41

    What it means to be an expression-oriented language, and how that works out in Rust.

    Notes

    Rust is an expression-oriented language. What does that mean, and how does it play out in Rust? We look at if and match blocks, discuss looping constructs, and examine functions, and then widen out to discuss how having an expression-oriented language can change the way we think about programming.

    Sponsors

    • Aleksey Pirogov
    • Chris Palmer
    • Derek Morr
    • Hamza Sheikh
    • Lachlan Collins
    • Leif Arne Storset
    • Luca Schmid
    • Micael Bergeron
    • Pascal
    • Ralph Giles (“rillian”)
    • Ralph “FriarTech” Loizzo
    • reddraggone9
    • Ryan Ollos
    • William Roe

    Become a sponsor

    Contact

    14 Nov 2017RBR 2017: Anthony Deschamps00:05:27

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

    ## Transcript

    **Chris:** hello! Can you tell me your name and a little bit about yourself?

    **Anthony:** My name is Anthony Deschamps, I, um, I’m a software developer, I work in Automotive.

    **Chris:** Oh! Very interesting. Long-time listeners will recognize Anthony’s name as a sponsor of the show; thank you for sponsoring the show!

    **Anthony:** You’re welcome!

    **Chris:** So, what got you into Rust?

    **Anthony:** I’ve talked about this earlier; I actually can’t remember how I first came across it. Um, I remember my friends being excited about it and looking at it at some point, um, but what really hooked me is that I have a huge amount of respect for C+ +, uh, it was one of my first languages, and to me, Rust feels like C+ + with decades of learned lessons. If we have a clean slate, and what you can do with a fresh start.

    **Chris:** Yeah. How long - do you remember roughly, obviously you don’t remember exactly when, but - do you remember roughly how long...pre 1.0, post 1.0?

    **Anthony:** Uh, probably about a year ago, so, somewhere after 1.10 or roundabouts.

    **Chris:** Okay. Very good. What has your experience of learning Rust been like? Good, bad, ugly?

    **Anthony:** Um, it’s made my C+ + better.

    **Chris:** Yeah.

    **Anthony:** Everything thing that I struggled with in Rust was really just a lesson for what I could be doing better in other places.

    **Chris:** What are you using Rust for presently? Are you able to use it at work at all, or is it side projects entirely, still?

    **Anthony:** So, a combination of hobby projects, uh, when I have time. And, a little bit at work. It’s one of those things where it is a little bit of a risk, a newer thing, so it’s been nice to try it out on some small things, see how it goes, and realize that I do like it and get excited about hoping to use it more.

    **Chris:** Yeah. What kind of side projects have you been able to do?

    **Anthony:** Um, when I get around to strapping a Raspberry Pi to a balloon and sending it up to the stratosphere to take some photos, that’ll be in Rust.

    **Chris:** That’s awesome.

    **Anthony:** I also like to play around with arduinos, and LEDs are fun, and I’m using a little bit of Rust there.

    **Chris:** Cool. Is there anything in particular that’s caught your attention either with this conference or with the Rust community in general?

    **Anthony:** The most exciting thing to me is meeting the people who are making the things that I enjoy using. Uh, it seems obvious when you really think about it, but, um, the things that you use are not made by some...cloud, or void, or they don’t just come out of nowhere, they’re made from real people, who really enjoy working on what they’re doing, and are really excited to talk to you about it.

    **Chris:** I share that sentiment deeply. Thank you for your time!

    **Anthony:** Well, thank you so much for the podcast. I really enjoy it.

    **Chris:** My pleasure, and absolutely awesome, speaking of meeting people in person, it’s great to meet you in person!

    **Anthony:** I agree. Thank you so much.

    **Chris:** Thank you!

    18 May 2019CYSK: bindgen and cbindgen00: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

    15 Feb 2017CYSK: clap00:10:42

    A Command-Line Argument Parser.

    Sponsors

    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

    13 Dec 2017RBR 2017: Andrew Hobden00:06:00
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
    19 Apr 2016Bonus 4: We can have nice things00:10:17

    Just how good Rust is, and how you can learn it even if you’re busy.

    Notes

    Sometimes life goes crazy and I don’t have time to do all the technical writing required for a full episode, but I can’t get Rust off my mind, so I record an episode like this one. Where I talk a bit about how versatile Rust is and suggest some surprising ways you might be able to use it.

    Sponsors

    • Aleksey Pirogov
    • Chris Palmer
    • Derek Morr
    • Hamza Sheikh
    • Lachlan Collins
    • Leif Arne Storset
    • Luca Schmid
    • Micael Bergeron
    • Pascal Hertleif
    • Ralph Giles (“rillian”)
    • Ralph “FriarTech” Loizzo
    • reddraggone9
    • Ryan Ollos
    • Vesa Kaihlavirta
    • William Roe

    (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!)

    Become a sponsor

    Contact

    23 Jul 2016e016: RefCells and code smells00:18:52

    Digging deeper on smart pointers and mutability with Cell and RefCell.

    Notes

    What are the Cell and RefCell types, and when should we use them?

    Today, we follow up both the detailed discussion of smart pointers in e015 and the closely related discussion in Interview 2 with Raph Levien, and look at two types you need to have a good idea how to deal with if you want to use these smart pointer types more ergonomically—that is, how to use them without feeling like you’re beating your head against a wall!

    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

    15 Nov 2017RBR 2017: Arun Kulsheshthra00:05:27
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
    08 Aug 2016e017: Point me where I need to go00:17:06

    A deep dive on references and pointers in Rust.

    Notes

    By listener request, today we look at the syntax and semantics of referencing and dereferencing and the corresponding & and * operators.

    As was the case with e016, the code samples have little to say in their documentation; reading the code will be necessary for seeing the ideas.

    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

    12 Nov 2016Meta 1 – Slowing Down00:07:42

    Avoiding burnout by taking it a little easier.

    Sometimes, the way a podcast stays in existence is by coming out less often. That’s what’s happening here.

    Links

    Become a sponsor

    Follow

    01 Apr 2017e020: Putting code in its place00:20:20

    How do we organize code in Rust? Where do we break it apart into modules or crates, and why?

    Notes

    Structuring code in a language like Rust can seem a bit more ambiguous than doing the same in a language with classes to attach all our functionality to, but in practice, the concerns are much the same: modules are namespaces, and we group by responsibility. In today's episode, I talk through that philosophy (and give some comparisons to other languages), and then look at what it looks like in practice!

    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

    17 Jun 2017Interview 4 – Jonathan Turner: Part 300:22:05

    Smoothing the Rust dev story

    Future work on the RLS, in Rust itself, and in Servo.

    Show Notes

    Building the Rust Language Service:

    Working on Servo:

    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

    06 Jan 2018News: Rust 1.2300:16:54

    Show notes

    Sponsors

    Become a sponsor

    Contact

    23 Jan 2019News: Rust 1.3200: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

    09 Jan 2016e009: Composing a Rustic tune00:17:23

    Notes

    Last time, we looked at generics and traits at a high level. This time, we dig deeper on traits, looking specifically at std::iter::Iterator as an example of a powerful trait that can be composed across types, and then at how we might compose multiple traits on a single type.

    We also talk about the syntax for traits, the use of marker traits, some of the things you can’t presently do with traits, and even just a smidge about the future of traits in Rust. All that in less than 20 minutes!

    You’ll find today’s source example fairly interesting, I think: it’s just one type, but it uses almost every concept discussed on the show today!

    Sponsors

    • Aleksey Pirogov
    • Chris Palmer
    • Derek Morr
    • Hamza Sheikh
    • Luca Schmid
    • Micael Bergeron
    • Ralph Giles (“rillian”)
    • reddraggone9
    • William Roe

    Become a sponsor

    Follow

    26 Apr 2016e014: Stringing things along00:18:58

    Strings &strs and Vecs and slices (and Unicode) – oh, my!

    Notes

    This episode, I take a deep dive on strings in Rust, looking at the differences between String and &str, discussing Unicode a bit, and then expanding the discussion to think about how these types relate to the types they’re built on (like Vec).

    Sponsors

    • Aleksey Pirogov
    • Chris Palmer
    • Derek Morr
    • Hamza Sheikh
    • Lachlan Collins
    • Leif Arne Storset
    • Luca Schmid
    • Micael Bergeron
    • Pascal Hertleif
    • Ralph Giles (“rillian”)
    • Ralph “FriarTech” Loizzo
    • reddraggone9
    • Ryan Ollos
    • Vesa Kaihlavirta
    • William Roe

    (Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!)

    Become a sponsor

    Contact

    06 Dec 2017RBR 2017: Thomas Gideon00:05:35
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
    19 Mar 2017Bonus 8: Giving back (by teaching)00:13:30

    On the responsibilities and opportunities we have to help others with our knowledge and abilities.

    Notes

    Many of us have been very blessed with opportunities and support as we learn software. We should go out of our way to share with others in kind. Today, my focus is on teaching, but there are lots of ways to "give back." And I'd love to hear your thoughts and things you're doing in that vein!

    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

    10 Feb 2018CYSK: Serde00: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

    16 Nov 2015e006: Modularize this!00:18:22

    Notes

    Today, we are talking about modules, packages, and APIs in Rust. Taking a bit of a breather after some pretty hard material the last few weeks.

    For reference, the Rust book section on Crates and Modules will be very helpful.

    Corrigenda

    I accidentally called this episode 5, instead of episode 6. Whoops.

    Just before the 15:00 mark, while discussing libraries, I referred to “e006.md” when I meant to say “e006.rs”. Slips of the tongue inspired by the fact that Rust (delightfully) uses Markdown for its documentation.

    Links

    Sponsors

    Become a sponsor

    Follow

    22 Feb 2019e028: Meet My Associates00:23:07

    Associated items: functions and methods, constants, types, and (very briefly!) GATs.

    Show Notes

    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

    11 Nov 2017RBR 2017: Colin Dean00:07:16
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
    30 Sep 2016Interview 3 – Carol (Nichols || Goulding)00:47:11
    Carol (Nichols || Goulding) on learning Rust, teaching Rust, and building community

    Notes

    Chris talks with Carol (Nichols || Goulding), a Rust community team member, co-author of the first major revision of The Rust Programming Language, and co-founder of the first Rust consultancy.

    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

    31 Dec 2018Interview: Integer3200: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

    27 May 2019Meta 3: Happy Coding00: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

    25 Nov 2015Bonus 1: Polyglot Programming Promises and Perils00:08:28

    Polyglot Programming Promises and Perils

    Sometimes, you’re doing a technical interview, and you just cannot figure out why your JavaScript function isn’t behaving like it should… and then, prompted by the interviewer, you realize that you’re not returning anything. Polyglot programming is beautiful, and wonderful, and sometimes it bites you when you aren’t looking.

    Links

    Sponsors

    Become a sponsor

    Follow

    04 Apr 2019e029: I’m Out to C00:23:20

    Using Rust’s Foreign Function Interface (FFI) with C!

    Show Notes

    The code samples here directly match the things I described in the show, so you will likely want to look at add and ffi::add, then Point, translate, and ffi::translate in that order.

    Other helpful Rust FFI discussions:

    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

    29 Dec 2016News 2: Let's talk roadmap!00:21:08

    Rust’s achievements in 2016 and goals for 2017

    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

    05 Jul 2018e025: Traits Deep Dive, Part III00: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!

    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).

    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

    06 Dec 2015Bonus 2: Legacy Code00:09:41

    Legacy Code

    Software developers spend a large part of our careers dealing with legacy code. But what is the best way to deal with legacy code? When should you rip out the old and rewrite it, and when should you opt for smaller clean-up jobs because, however ugly, what is already present works?

    Sponsors

    • Chris Palmer
    • Derek Morr
    • Luca Schmid
    • Micael Bergeron
    • Ralph Giles (“rillian”)
    • reddraggone9
    • William Roe

    Become a sponsor

    Follow

    31 Mar 2018News: Rust 1.2500: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

    31 Jan 2017e018: `Borrow`, `AsRef`, `Deref`: my head hurts now00:17:25
    Three traits which are essential for designing good, Rustic APIs.

    Notes

    Borrow, AsRef, and Deref are a little complicated, but they're well-worth understanding. Together, they give you tools for dealing with everything from HashMap and friends to conversions involving smart pointer types to easily using String and str or Vec and slice together.

    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

    17 Mar 2018Bonus 10: “Becoming a Contributor”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

    28 Apr 2018e023: Traits Deep Dive, Part I00: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

    01 Feb 2018e023: Send and Sync00: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

    25 Sep 2017Meta 2: Two milestones00:12:02

    Two years and fifty episodes of New Rustacean—time to celebrate with stickers and shirts!

    Shirts

    Get them here! – available till Oct 9, 2017 at 8:00 PM EDT.

    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

    02 Mar 2018News: Rust 1.2400: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

    09 Dec 2017RBR 2017: Holden Marcsisin00:07:07
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
    18 Jul 2017e021: Keeping your types under cover00:17:28

    Using type aliases and creating custom type wrappers for more expressive and safer code.

    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

    01 Jun 2018CYSK: The wasm tools00: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

    14 May 2019e031: FFI Deep Dive00: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

    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

    03 Oct 2015e001: Document All the Things00: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

    13 Dec 2015e007: Testify00:18:46

    Notes

    All about testing in Rust! In order, we take a look at:

    • Why you need tests.
    • Unit tests in other (dynamically-typed) languages vs. in Rust.
    • How to write unit tests in Rust.
    • How and why to write integration tests in Rust.
    • How and why to use benchmarks in Rust.

    The detailed code samples for this episode are heavy on showing; because of the nature of test functions, you will be best off just reading the source rather than leaning heavily on the descriptions generated by rustdoc. (The descriptions are still there, but they’re much less useful than they have been in previous episodes.) In particular, the test module here is excluded because of the use of the #[cfg(test)] attribute marker on it.

    Because we are using the feature-gated benchmarking functionality, the show notes “library” can now only be compiled with the Rust nightly (as of 1.5, the version current as this episode is produced).

    One thing that isn’t necessarily obvious from reading the test documentation in the Rust book and Rust reference: the extern crate test statement needs to be not in this module, but at the module (lib.rs) which defines the library/crate; in this case, show_notes/lib.rs.

    Sponsors

    • Chris Palmer
    • Derek Morr
    • Luca Schmid
    • Micael Bergeron
    • Ralph Giles (“rillian”)
    • reddraggone9
    • William Roe

    Become a sponsor

    Follow

    30 Dec 2017Increasing Rust's Reach: Matt Gathu00: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

    28 Feb 2017e019: Let's `Clone` a `Cow`00:18:11

    The final pieces of the story for (single-threaded) memory management in Rust.

    Notes

    Sometimes, we actually do need to copy types. Wouldn't it be nice if Rust gave us a convenient way to do that when it's convenient, or when the cost is low enough that the ergonomic tradeoffs are worth it? Well, perhaps unsurprisingly, it does! The Copy and Clone traits, plus the Cow type, give us everything we need!

    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

    08 Dec 2017RBR 2017: Esty Thomas00:06:04
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
    31 May 2016News 1: One year and counting00:26:16

    A year in, Rust is changing fast but still stable.

    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

    23 Sep 2018Bonus 11: Burnout00: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

    08 Mar 2016e011: Once Upon a Type00:17:51

    Type systems: strong vs. weak, dynamic vs. static, and degrees of expressivity.

    Notes

    Talking about type systems! A broad and wide-ranging discussion about type systems in general, with specific examples from languages like PHP, JavaScript, Python, C, C++, Java, C♯, Haskell, and Rust!

    • What is a type system?
    • What are the kinds of things we get out of type systems?
    • What are the tradeoffs with different type systems?
    • What is Rust’s type system like?
    • What is especially attractive about Rust’s type system?

    A comment on the C integer/character string addition example: what’s actually happening there is that the character string is an array “under the covers,” and as such has an address. C silently switches to using the memory address, which is of course just an integer, when you try to add the two together. As I said on the show: the result is nonsense (unless you’re using this as a way of operating on memory addresses), but it’s compileable nonsense. In a stricter and stronger type system, memory addresses and normal numbers shouldn’t be addable!

    Sponsors

    • Aleksey Pirogov
    • Chris Palmer
    • Derek Morr
    • Hamza Sheikh
    • Lachlan Collins
    • Leif Arne Storset
    • Luca Schmid
    • Micael Bergeron
    • Pascal
    • Ralph Giles (“rillian”)
    • Ralph “FriarTech” Loizzo
    • reddraggone9
    • Ryan Ollos
    • William Roe

    Become a sponsor

    Contact

    20 Jun 2018e024: Traits Deep Dive, Part II00: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

    10 May 2016Bonus 5: Better than open-source contributions00:11:07

    Some things matter more than contributing to open-source software in your free time. A lot more.

    It’s trendy to ask for open-source work as evidence of your interest in tech and commitment to software development. Trendy and completely wrong. Companies should not demand open-source contributions from their employees, and beyond that, should learn to recognize that profit is not the most valuable thing in the world. People are.

    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

    18 Apr 2017CYSK: RLS00:11:30

    Where the RLS came from, what it can do, and how you can start using it today!

    Notes

    One major ergonomic improvement to developing in Rust in 2017 is coming via the Rust Language Service: an initiative that lets us share a common core of functionality between every editor – from Vim to VS Code and everything in between. In today's episode, I give some background on it and talk about how you can start using it today!

    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

    30 Oct 2015e004: Functionalized00:17:07
  • Date: October 29, 2015
  • Subject: Functions, methods, closures, and function as arguments!

    Notes

    This week’s episode covers the basics of all sorts of functions: normal functions, methods, and closures.

    Closures

    Links

    Follow/Support

    14 Jan 2019News: Rust 1.31 and the 2018 Edition, Part II00: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

    01 Sep 2017News: Rust 1.2000:13:15

    Associated constants, conference season, meetups, and more!

    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

    27 Dec 2015e008: Just like something else00:17:37

    Notes

    In this episode we cover—at a very high level—two more fundamental concepts in Rust programming: generics and traits.

    Generics gives us the abilitty to write types and functions which can be used with more than one type. Traits give us the ability to specify behavior which can be implemented for more than one type. The combination gives us powerful tools for higher-level programming constructs in Rust.

    Comments on source code

    Now that we have a handle on how tests work, we’ll use them to validate the behavior of our code going forward. This is great: we can show that the tests do what we think.

    To today’s point, though: we actually know even apart from whether the tests run successfully that these generic functions and the associated traits are behaving as we want. Failure with generics is a compile-time error, not a runtime error.

    Sponsors

    • Chris Palmer
    • Derek Morr
    • Luca Schmid
    • Micael Bergeron
    • Ralph Giles (“rillian”)
    • reddraggone9
    • William Roe

    Become a sponsor

    Follow

    26 Nov 2017RBR 2017: Tom Kriezkowski00:05:00

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

    13 Jan 2018Interview – Diesel 1.0, with Sean Griffin – Part 100: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

    14 Aug 2017Bonus 9: Open source is mostly just normal people

    My experience with ember-cli-typescript as an example: we're all just people muddling along and doing our best.

    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

    24 Nov 2017News: Rust 1.21 and 1.2200:15:53

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

    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

    24 Sep 2015e000: Hello, world!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.

    10 Sep 2016Bonus 7: Katas—or: learning by doing00:10:19

    Katas—or: learning by doing

    Notes

    One of the best ways to learn is to pick a small problem you have already internalized, and to do it again but in a new language or in a new way in a language you already know.

    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

    01 May 2017Interview 4 – Jonathan Turner: Part 100:22:50

    Getting to Rust

    Background, TypeScript, coming to Rust, and how helpful the Rust community can be.

    Show Notes

    On Jonathan's programming backstory:

    After the transition to working on Rust full-time:

    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

    21 Dec 2017Increasing Rust's Reach: Anna Liao00: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

    15 Dec 2017RBR 2017: Ben Beckwith00:05:42
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
    18 Jun 2016e015: Not dumb pointers00:20:03

    Box, String, Vec, Rc, and Arc have this in common: they’re not dumb.

    This episode, we take a close look at smart pointer types—from a few we’ve already talked about, like Box, Vec, and String, to some new ones, like Rc and Arc.

    • What smart pointers are, and what makes them ‘smart’.
    • Why we want or need smart pointers.
    • A bit about Box.
    • A lot more about Rc and Arc.

    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

    18 Nov 2017RBR 2017: Pete Lyons00:04:54

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

    01 Feb 2016Bonus 3: Building as a community00:12:03

    Community is one of the most important parts of a programming language community, or indeed any technical community. In this episode, I talk a bit about what happens when you don't have a good community, how Rust's community has done well so far, and then how to keep building a good community and how to build good things as a community.

    Sponsors

    • Aleksey Pirogov
    • Chris Palmer
    • Derek Morr
    • Hamza Sheikh
    • Luca Schmid
    • Micael Bergeron
    • Ralph Giles (“rillian”)
    • reddraggone9
    • William Roe

    Become a sponsor

    Follow

    25 Jul 2018e026: Functional Programming Ideas00: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!

    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

    04 Jul 2016Interview 2::Part 2 – Raph Levien00:19:33

    Raph Levien on Rust’s current strengths and places it can improve

    Notes

    Chris chats with Raph Levien about what inspired him to build a text editor, as well as about where the rough edges in the Rust development story are today, and how we might improve them going forward.

    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

    19 Nov 2017RBR 2017: Jess Saxeter00:05:17
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
    21 Oct 2015e003: No. more. nulls.00:16:51

    No More Nulls

    Subject: Enumerated (enum) types, pattern matching, and meaningful return types.

    Notes

    Today’s episode discusses, in order:

    • Enumerated types, with an eye to the difference between structs and enums, and to the differences between enums in C and in Rust.
    • Pattern matching, with a focus on using them with enumerated types and some discussion about how they differ from switch blocks in C-like languages.
    • Using the Option and Result enumerated types with pattern matching to provide meaningful returns from functions safely.

    Order

    There is a specific order to the examples below, and it is not the automatically-alphabetized order rendered by rustdoc. Instead, you should work through in the sequence they appear in the source:

    1. RelatedishThings
    2. demonstrate_basic_enumeration
    3. demonstrate_match
    4. get_an_option
    5. demonstrate_option
    6. get_a_result
    7. demonstrate_result

    Follow/Support

    • New Rustacean:
      • Twitter: @newrustacean
      • App.net: @newrustacean
      • Patreon
      • Email:
    • Chris Krycho
    16 Aug 2018News: Rust 1.28

    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

    25 Jun 2016Interview 2::Part 1 – Raph Levien00:28:17

    Raph Levien on using Rust to build the Xi editor

    Notes

    Chris chats with Raph Levien about his background in software development, what attracted him to Rust, and how he’s using Rust to build the Xi Editor, a project which aims to be the fastest text editor out there, with native user interfaces and a Rust text engine.

    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

    30 May 2017Interview 4 – Jonathan Turner: Part 200:25:09

    Making Rust Better

    Rust as the fusion of systems and high-level programming languages, and the RLS.

    Show Notes

    Building the Rust Language Service:

    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

    04 Jul 2017News 3: Increasing Rust's Reach00:13:02

    Growing Rust's diversity to help Rust grow.

    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

    24 Mar 2019Bonus 14: How the Sausage Gets Made00:19:22

    How I make the show, and why you won’t find it on Google Play, Spotify, or Stitcher.

    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

    27 Apr 2019e030: Can You See Me Now?00: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!

    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

    25 Feb 2016Interview 1::Part 2 – Sean Griffin00:22:14

    Sean Griffin on type systems and hopes for Rust's future

    Notes

    Chris chats with Sean Griffin about the tradeoffs between mental overhead and type safety, the expressiveness of different type systems, and some of the places where Rust currently falls down.

    Corrigenda

    Sean noted he could be wrong about IEnumerable<T> not having a Sum method in C♯, and post-show research indicated that he was (it's possible it was added after he had stopped doing .NET work, of course). See the documentation for details on how IEnumerable<T>.Sum it behaves in C♯ if you're curious.

    As a related note, I (Chris) have done a little bit of digging on C♯ in the interval and it's fair to say that while a lot of the "ceremony" involved in writing C♯ is annoying, it's much more than just a "slightly nicer Java", and indeed is a much nicer language than my previous, limited exposure had led me to believe. It's no Rust or F♯, but its type system is substantially more capable than Java's.

    Links

    Sponsors

    • Aleksey Pirogov
    • Chris Palmer
    • Derek Morr
    • Hamza Sheikh
    • Leif Arne Storset
    • Luca Schmid
    • Micael Bergeron
    • Ralph Giles ("rillian")
    • reddraggone9
    • Ryan Ollos
    • William Roe

    Become a sponsor

    Follow

    21 Jan 2018Interview – Diesel 1.0, with Sean Griffin – Part 200: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

    10 Dec 2017RBR 2017: Ben Striegel00:06:10
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.
    01 Dec 2018e027: Trust Me; I Promise!00: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!

    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

    12 Dec 2017RBR 2017: Matthias Endler00:06:30
    A micro-interview recorded at Rust Belt Rust 2017, in Columbus, Ohio, October 27–28.

    Enhance your understanding of New Rustacean with My Podcast Data

    At My Podcast Data, we strive to provide in-depth, data-driven insights into the world of podcasts. Whether you're an avid listener, a podcast creator, or a researcher, the detailed statistics and analyses we offer can help you better understand the performance and trends of New Rustacean. From episode frequency and shared links to RSS feed health, our goal is to empower you with the knowledge you need to stay informed and make the most of your podcasting experience. Explore more shows and discover the data that drives the podcast industry.
    © My Podcast Data