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

    Implementing (part of) a BitTorrent client in Rust

    Jon Gjengset

    2 HN recommenders · recommended in 3 months, 2023

    YouTube

    4:09:16 · 115K views · Oct 19, 2023

    Jon Gjengset's roughly four-hour live stream implementing part of a BitTorrent client in Rust, following CodeCrafters' test-guided challenge. He builds from scratch and shows idiomatic error handling along the way.

    HN recommends it as a comprehensive walkthrough of the build-your-own-BitTorrent challenge and as an introduction to CodeCrafters.

    Software Engineering & LanguagesC, C++, Rust, Go & systems languagesNetworking & internet infrastructureSoftware practice, open source & careers
    1. 29:25
      Rust NYC: Jon Gjengset - Demystifying unsafe codeRust Programming Language27K views • 6 years ago
    2. 1:02:49
      Hacking with Andrew and Brad: tip.golang.orgThe Go Programming Language99K views • 11 years ago
    3. 2:34:01
      Crust of Rust: async/awaitJon Gjengset246K views • 5 years ago
    4. 3:03:54
      The Why, What, and How of Pinning in RustJon Gjengset87K views • 7 years ago
    5. 1:33:23
      Crust of Rust: Lifetime AnnotationsJon Gjengset299K views • 6 years ago
    6. 2:59:08
      Vibe coding complex changes in RustJon Gjengset56K views • 1 year ago
    7. 52:54
      Rust at speed — building a fast concurrent databaseJon Gjengset225K views • 7 years ago
    8. 39:03
      RustConf 2020 - Closing Keynote by Siân GriffinRust Programming Language9.8K views • 6 years ago
    9. 1:00:54
      GoingNative 2012 - Day 2 - Clangaghuttun13K views • 13 years ago
    10. 32:24
      RustLatam 2019 - Without Boats: Zero-Cost Async IORust Programming Language55K views • 7 years ago
    11. 1:55:24
      Ideas about a new programming language for games.Jonathan Blow530K views • 12 years ago
    12. 1:01:51
      Rant: Entity systems and the Rust borrow checker ... or something.Jonathan Blow304K views • 8 years ago
    13. 51:27
      Google I/O 2012 - Go Concurrency PatternsGoogle for Developers894K views • 14 years ago
    14. 48:46
      Rust's Journey to Async/AwaitInfoQ90K views • 6 years ago
    15. 42:30
      RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine WestRust Programming Language152K views • 8 years ago
    16. 42:38
      2021: Year of the Linux Gaming Desktop - Andrew KelleyZig SHOWTIME15K views • 5 years ago
    17. 1:19:52
      CppCon 2016: Jason Turner “Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17”CppCon264K views • 10 years ago
    18. 1:05:45
      LibreSSL with Bob BeckJason Tubnor25K views • 12 years ago
    19. 59:48
      The Road to Zig 1.0 - Andrew KelleyChariotSolutions168K views • 7 years ago
    20. 1:05:59
      Data Oriented GUI in Rust by Raph Levien - Bay Area Rust MeetupRust Programming Language83K views • 8 years ago

    5 comments from Hacker News

    1. @sarupbanskotaNov 2023· in “Show HN: I built a guided Build your own DNS Server challenge”

      (CodeCrafters team here). Out of curiosity, is there a reason why you prefer video format vs. interactive? e.g out of habit, when I'm having a meal, I like watching "course videos" or streams occasionally. Is yours similar? P.S. Jon Gjengset did a comprehensive stream going through the Build your own BitTorrent challenge this video , if you're interested in Rust

      RecommendsView on HN
    2. @joshkaDec 2023· in “Show HN: Rqbit – bittorent CLI and desktop app written in Rust”

      Take a watch of Jon Gjengset's vids on this (there's a codecrafters challenge for building out a bittorent protocol that he's going through). - this video - [LINK]

      RecommendsView on HN
    3. @zoogenyOct 2023· in “"Useless Ruby sugar": Pattern matching (Pt. 1)”

      I was thinking of `guard` in Swift when I was writing but I haven't used it so I was unsure of its exact semantics. It is a bit of a shame it is only useable on optionals and not on arbitrary types. Nice to see a full pattern matching guard in Rust. I think the terminating `?` operator makes it a bit less necessary as I would guess a large portion of cases where I would want that early-return behavior I would just take advantage of that operator. But their choice to reuse `else` makes a lot of sense and the pattern reads well. I was watching the recent Rust stream by Jon Gjengset where he builds a BitTorrent implementation [1]. One thing he did frequently was add a `.context` method to function invocations that would terminate in `?`. My assumption just looking at that pattern is that it would allow the error system to tag the errors to help guide the programmer to the specific line the error was generated from, almost like an annotated stack trace. But again, I don't have direct experience programming large Rust applications. The reason I consider this topic it is because this kind of error handling would be ideal in Go. I often end up with the classic pattern: if value, err := someFunc(); !err { // value is useable } // handle err And I would just really, really like if Go would let me: if value, err := someFunc(); err != nil { // handle err } // value is useable But, I suppose due to Go block scoping `value` is only valid within the if block. 1. this video

      CitesView on HN
    4. @methouNov 2023· in “CodeCrafters CEO adds his paid service as a next step after finishing Rustlings”

      I found that CodeCrafters is quite fun after watching an video on Youtube[0], and shared it with my friends who might also be interested. The feedback I got was quite similar to the community: - really interesting idea, but - pricing is absurd, not gonna pay 100$ for these, and - their minimal paid plan at 40$/mo is a lie, with a fine print: Available as a one-time payment for 3 months or 1 year access. - Lack of in depth implementation of the projects, i.e for the free HTTP server project, it stopped at "Post a file", lack of beefy & fun stuff like for example HTTP 1.1 Pipelining I believe the value (the fun) it would provide me would be about the same level of Ace Combat 7 (I paid ~40$US), and the complexity is less than Bauder's Gate(69$SG). I would pay roughly US$40 for all of the content altogether at this moment. edit: added a link -- [0]: this video

      CitesView on HN
    5. @JonhooOct 2023· in “Build Your Own BitTorrent”

      Oh hey, that's me! A better link is this video which has chapter marks and has the power outage in the middle spliced away :p

      CitesView on HN