Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    The Why, What, and How of Pinning in Rust

    Jon Gjengset

    3 HN recommenders · recommended in 3 months, 2021–2026

    YouTube

    3:03:54 · 87K views · Sep 14, 2019

    Jon Gjengset's long live-coding stream explains Rust's Pin and Unpin types: why they exist, how they work, and how they connect to futures and async/await. It also covers moving from pre-pinning code to the new model.

    HN treats it as the definitive resource for understanding Pin semantics and lists it among async Rust learning materials.

    Software Engineering & LanguagesC, C++, Rust, Go & systems languagesProgramming language design
    1. 2:34:01
      Crust of Rust: async/awaitJon Gjengset246K views • 5 years ago
    2. 48:46
      Rust's Journey to Async/AwaitInfoQ90K views • 6 years ago
    3. 32:24
      RustLatam 2019 - Without Boats: Zero-Cost Async IORust Programming Language55K views • 7 years ago
    4. 1:33:23
      Crust of Rust: Lifetime AnnotationsJon Gjengset299K views • 6 years ago
    5. 29:25
      Rust NYC: Jon Gjengset - Demystifying unsafe codeRust Programming Language27K views • 6 years ago
    6. 1:02:49
      Hacking with Andrew and Brad: tip.golang.orgThe Go Programming Language99K views • 11 years ago
    7. 55:08
      Rust: A Language for the Next 40 Years - Carol NicholsChariotSolutions367K views • 7 years ago
    8. 52:54
      Rust at speed — building a fast concurrent databaseJon Gjengset225K views • 7 years ago
    9. 49:20
      Modeling Data Concurrency w/ Asynchronous I/O in Zig - RedisConf 2020Redis11K views • 6 years ago
    10. 4:09:16
      Implementing (part of) a BitTorrent client in RustJon Gjengset115K views • 3 years ago
    11. 51:27
      Google I/O 2012 - Go Concurrency PatternsGoogle for Developers894K views • 14 years ago
    12. 12:31
      OSCON 2010: Rob Pike, "Public Static Void"O'Reilly119K views • 16 years ago
    13. 38:19
      Origins of Go Concurrency style by Rob Pikejasonofthel33t28K views • 14 years ago
    14. 59:48
      The Road to Zig 1.0 - Andrew KelleyChariotSolutions168K views • 7 years ago
    15. 1:29:49
      Going Native 2012 Keynote Stroustrupsavage30933K views • 14 years ago
    16. 56:36
      GopherCon 2014 Opening Keynote by Rob PikeConfreaks38K views • 12 years ago
    17. 39:03
      RustConf 2020 - Closing Keynote by Siân GriffinRust Programming Language9.8K views • 6 years ago
    18. 59:26
      The Go Programming LanguageGoogle TechTalks406K views • 16 years ago
    19. 54:55
      Dconf 2014 Day 2 Keynote: The Last Thing D Needs -- Scott MeyersThe D Language Foundation19K views • 8 years ago
    20. 1:55:24
      Ideas about a new programming language for games.Jonathan Blow530K views • 12 years ago

    3 comments from Hacker News

    1. @theossuaryMar 2023· in “Effing-mad, an effect library for Rust”

      Jon Gjengset's stream on pin/unpin is invaluable for understanding Pin semantics: this video But the 10000 ft view is: Pin lets you tell Rust to never ever move a piece of memory. This is almost always done because the piece of memory has pointers into itself (it's self referencial) which would be come invalid if moved.

      Strongly recommendsView on HN
    2. @DasIchMay 2021· in “Things you can’t do in Rust (and what to do instead)”

      Let's assume for a moment self-referential references were allowed. Let's further say we have such a struct containing self-referential references and we move it. Moving actually moves things in memory, including the thing those references reference. This means the references now point at the old and now incorrect location. Accessing them would trigger undefined behavior. Self-referencing is only acceptable, if the struct is guaranteed not to move. Rust does provide a mechanism to provide such a guarantee with std::pin but outside of async code, you probably don't want to be using it. std::pin: [LINK] If you're curious about pinning and have a few hours to spare, this video is a great video that explains it in detail.

      RecommendsView on HN
    3. @lame_lexemMay 2026· in “Async Rust never left the MVP state”

      there is a chapter on async in comprehensive rust and rustbook which ought to bring you up to speed there is the async book but it is largely unfinished you can watch John Gjengset's crust of rust async, decrusting tokio, and why what, and how of pinning in rust then there are tokio-lessons and tokio tutorial which teach how to use tokio runtime and there are also good blogposts by phil-oop and rose wright on how async works [LINK] [LINK] [LINK] [LINK] [LINK] this video [LINK] [LINK] [LINK] [LINK]

      RecommendsView on HN