Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
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
    T

    Tweede Golf Blog

    tweedegolf.nl · Company blog · on HN since 2020

    Tweede Golf, a Dutch software company, writes about Rust in embedded and systems software, including async Rust, sudo-rs and fuzzing.

    Visit blogHN submissions
    Languages & CompilersSystems & PerformanceSecurity
    What HN says

    Commenters find its posts on dependency reduction in sudo-rs a great read and discuss its views on embedded async Rust and memory safety.

    Stats for nerds
    38HN people shared it
    50linked in comments
    605story points
    Jan 2026last shared
    2022people per year2026

    Top posts on HN

    1. 1
      Rust is rolling off the Volvo assembly line
      2 people · 140 points · first shared 2024 · 99 comments on HN
    2. 2
      Sudo-rs dependencies: when less is better
      3 people · 101 points · first shared 2024 · 57 comments on HN
    3. 3
      The Hunt for Error -22
      3 people · 74 points · first shared 2025 · 25 comments on HN
    4. 4
      Rust Needs an Official Specification
      1 person · 55 points · first shared 2024 · 47 comments on HN
    5. 5
      Build your own async primitive
      1 person · 51 points · first shared 2020 · 14 comments on HN
    6. 6
      Async Rust never left the MVP state
      2 people · 44 points · first shared 2026 · 2 comments on HN
    7. 7
      Optimizing the Roc parser/compiler with data-oriented design
      1 person · 42 points · first shared 2024 · Discussion on HN
    8. 8
      Does using Rust make your software safer?
      4 people · 30 points · first shared 2025 · 6 comments on HN
    9. 9
      Embedded Async Rust destroys RTOS on ergonomics (and on everything else)
      7 people · 10 points · first shared 2022 · 1 comments on HN
    10. 10
      Sorting with SIMD
      1 person · 7 points · first shared 2022 · Discussion on HN

    What HN people wrote when they linked it

    • epageNov 2024

      Context: maintainer of clap, a Cargo team member

      Regarding the CLI parser

      > This will take in our arguments (from something like std::env::args) and return our matches, or an error.

      `std::env::args` will panic on non-UTF8 content, like a file path. You could instead error on non-UTF8 content. Until recently, you had to pull in a dependency or reinvent some non-trivial stuff to properly deal with `OsStr`s. There are now `unsafe` functions for dealing with them. I'd like to extend things further to have a proper "pattern" API for `OsStr` which would allow almost everything a CLI parser needs to deal with `OsStr` without a dependency and without `unsafe`.

      ---

      Regarding the discussion on dependencies, I think there are reasonable and valid situations to be careful of adding dependencies (see https://tweedegolf.nl/en/blog/119/sudo-rs-depencencies-when-less-is-better and the follow up https://www.reddit.com/r/rust/comments/1b92j0k/sudors_dependencies_when_less_is_better/ktuf2t2/) but the reasoning here focuses on the wrong things imo.

      > That would add 23 dependencies to my little project, if you count transitive dependencies. This can go up higher if you turn on a few features: derive, env, unicode, and wrap_help bring you up to 38 dependencies!

      People overly focus on dependency counts. Yes, they mention dependency counts aren't a meaningful metric later but the lack of nuance here suggests they've not internalized that, including talking about the impact of optional…

    • rnijveldJun 2024

      I agree that amplification and reflection definitely are worries, which is why we are working towards NTS becoming a default on the internet. NTS would prevent responses by a server from a spoofed packet and at the same time would make sure that NTP clients can finally start trusting their time instead of hoping that there are no malicious actors anywhere near them. You can read about it on our blog as well: https://tweedegolf.nl/en/blog/122/a-safe-internet-requires-secure-time

      One thing to note about amplification: amplification has always been something that NTP developers have been especially sensitive to. I would say though that protocols like QUIC and DNS have far greater amplification risks. Meanwhile, our server implementation forces that responses can never be bigger than the requests that initiated them, meaning that no amplification is possible at all. Even if we would have allowed bigger responses, I cannot imagine NTP responses being much bigger than two or three times their related request. Meanwhile I've seen numbers for DNS all the way up to 180 times the request payload.

      As for your worries: I think being a little cautious keeps you alert and can prevent mistakes, but I also feel that we've gone out of our way to not do anything crazy and hopefully we will be a net positive in the end. I hope you do give us a try and let us know if you find anything suspicious. If you have any feedback we'd love to hear it!

    • sshineJan 2025

      > Async Rust (by default) can allocate memory

      For bare-metal Rust firmware, you would always use no-std, which excludes a default allocator.

      I understand from what you're saying that the principal difference between embassy-rs and what you'd expect from an RTOS is the choice of scheduling; as far as I can see, embassy-rs'es cooperative scheduler is even defended as highly intended.

      The advantage of cooperative scheduling is that you don't need threads and context switching, since every yield gives control to the next task. And, as you say, the downside is that you can't reason about when yielding happens, so you can only hope that tasks yield often.

      > interrupt executor [...] essentially ties each task to a dedicated interrupt, and AFAICT requires that all high-priority work must happen in interrupt context.

      Hmm, that seems bad.

      And how so is RTIC disqualified? It seems not classically preemptive.

      https://rtic.rs/2/book/en/#rtic---the-past-current-and-future

      https://interrupt.memfault.com/blog/embedded-async-rust#cooperative-vs-preemptive-scheduling

      https://tweedegolf.nl/en/blog/65/async-rust-vs-rtos-showdown

    • sea-goldMar 2024

      This was a great (and short) read.

      > Over the course of a few months we carefully removed almost all of our dependencies, ending up with only three crate dependencies required for the current version. Those crates are libc, glob, and log. All three of them are being maintained under the rust-lang github organization, indicating that they are very much at the core of the Rust ecosystem.

      That is impressive!

      I also learned about a few other neat things:

      - The Tweede golf blog[1] which has lots of great content on Rust (example[2])

      - cargo-depgraph[3]

      [1] https://tweedegolf.nl/en/blog/

      [2] https://tweedegolf.nl/en/blog/104/dealing-with-dependencies-in-rust

      [3] https://github.com/jplatte/cargo-depgraph

    • bschwindHNJan 2026

      Here's a good technical writeup on latency and jitter (latency standard deviation) for interrupts when it comes to Embassy, FreeRTOS, and RTIC:

      https://tweedegolf.nl/en/blog/65/async-rust-vs-rtos-showdown

      Obviously if you're working on something truly hard real-time you probably wouldn't be reaching for these tools to begin with, but for the average embedded project it seems you will enjoy quite good latency and jitter characteristics by default.

    • jrpelkonenNov 2025

      Fil-C is an innovative approach and a great technical achievement. However, I wouldn't suggest that it is an universal solution without caveats. For instance, the performance penalty of up to 4x is not acceptable in a lot of cases.

      Also, the c2rust output is rough but not hopeless: There are real world success stories of rust projects that were bootstrapped via c2rust, e.g. https://tweedegolf.nl/en/blog/151/translating-bzip2-with-c2rust

    Related

    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Corrode Blogcorrode.dev51 people

    Flattening Rust’s learning curve

    Corrode Blog
    Company · last shared 2026
    without.boatswithout.boats80 people

    Pin

    without.boats
    Personal · last shared 2026
    fasterthanli.mefasterthanli.me236 people

    A half-hour to learn Rust

    fasterthanli.me
    Personal · last shared 2026
    Cliff Bifflecliffle.com81 people

    Rewriting m4vgalib in Rust

    Cliff Biffle
    Personal · last shared 2026
    Sabrina Jewsonsabrinajewson.org15 people

    Async destructors, async genericity and completion futures

    Sabrina Jewson
    Personal · last shared 2025
    boatsboats.gitlab.io71 people

    Async and Await in Rust: a full proposal

    boats
    Personal · last shared 2026
    Embark Studios Blogmedium.com/embarkstudios18 people

    Homegrown Rendering with Rust (2021)

    Embark Studios Blog
    Company · last shared 2025