Hacker Blogs
Work in progress: 15,409 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #795

C

Cliffle

Personal blog · cliffle.comprogrammingsystems

Cliffle is a personal blog at cliffle.com about programming and systems. Since 2019, 83 different Hacker News readers have linked it 115 times, most often “The Typestate Pattern in Rust (2019)”. It is still writing: the last post was on 2024-12-14, and you can follow it by feed.

Visit the blog
115mentions?
5recommend?
83HN people?
2019–2026first – last linked?
Links on Hacker News per year · peak 21 in 2023

Rarely recommended · 5 of 40 sampled comments recommend it?

Why HN links it

HN readers link Cliff Biffle's Rust posts as references: typestates, the dangerust C-to-Rust series, and Hubris OS design. Mostly cited as support for a point rather than praised.

Recommended for · 5 comments
Called a good typestate description and a great auto-vectorization example; read for Hubris and embedded Rust.

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. The Typestate Pattern in Rust (2019)
    15 people · 17 mentions · first linked 2021-04-16
  2. The Typestate Pattern in Rust
    9 people · 9 mentions · first linked 2019-06-06
  3. Learn Rust the Dangerous Way
    7 people · 8 mentions · first linked 2019-12-23
  4. Learn Rust the Dangerous Way
    7 people · 7 mentions · first linked 2021-12-01
  5. Prefer Rust to C/C++ for new code
    6 people · 7 mentions · first linked 2019-11-15
  6. The server chose violence
    6 people · 6 mentions · first linked 2024-04-09
  7. Bare Metal WASM
    5 people · 5 mentions · first linked 2020-01-02
  8. On Hubris and Humility
    4 people · 5 mentions · first linked 2021-12-07
  9. Why Rust mutexes look like they do
    3 people · 4 mentions · first linked 2022-04-01
  10. Making My Website Faster
    3 people · 3 mentions · first linked 2024-01-14

What Hacker News says?

  1. > Surely you can see that an inner implementation of the icon class requiring a special hidden order In practice, programmers don't find it easy to keep in mind that certain functions might throw. This is a real problem with unchecked exceptions and with C-style error codes that sloppy programmers might ignore entirely. > [...] on which properties to set first can happen in any language A carefully designed library…

    Comment linking /blog/rust-typestate/

    on “Cloudflare outage on November 18, 2025 post mortem”
  2. Submitted Rewriting m4vgalib in Rust as a story · 372 points

    HN discussion
  3. > It's written in JS which means that it's way smaller There's nothing inherently large about WebAssembly, it's just that most practical wasm demos bundle emscripten (essentially an entire OS's standard library) or another very heavy layer in order to interop between the JS and WASM world. As a bit of an experiment to see how small wasm could practically be with a minimal interop layer, I built this little project -…

    Comment linking /blog/bare-metal-wasm/

    on “Townscaper Running in the Browser”
  4. Submitted Who killed the network switch? A Hubris Bug Story as a story · 363 points

    HN discussion
  5. The Rust compiler can auto-vectorize loop code. This blog post shows how to write simple idiomatic Rust code that will allow the compiler to auto-vectorize: http://cliffle.com/p/dangerust/6/

    Comment linking /p/dangerust/6/

    on “Rust is now overall faster than C in benchmarks”
  6. Submitted The server chose violence as a story · 306 points

    HN discussion
  7. neopallium · 2021-01-04Recommends
    Someone wrote a 6 part of blog post [0] about porting that nbody benchmark from C to Rust. They went from a straight line by line port using unsafe rust using the same SSE based design to clean no-unsafe and no SSE rust code that was faster then the original C code with hand optimized SSE. It is a great example of how the Rust compiler can auto-vectorize code. 0. http://cliffle.com/p/dangerust/6/

    Comment linking /p/dangerust/6/

    on “Rust is now overall faster than C in benchmarks”
  8. Submitted Learn Rust the Dangerous Way as a story · 239 points

    HN discussion
  9. Rust marks cross-thread shared memory as immutable in the general case, and allows you to define your own shared mutability constructs out of primitives like mutexes, atomics, and UnsafeCell. As a result you don't get rope to hang yourself with by default , but atomic orderings are more than enough rope to devise incorrect synchronizations ( especially with more than 2 threads or memory locations). To quote an earli…

    Comment linking /blog/rust-mutexes/

    on “Rust Is Hard, Or: The Misery of Mainstream Programming”
  10. Submitted Let the Compiler Do the Work as a story · 213 points

    HN discussion
  11. I came to Rust for things like sum types, lack of unexpected null values, monadic error handling (Result<T, E>), and the borrow checker's ability to enable the typestate pattern. ( https://cliffle.com/blog/rust-typestate/ for more on what the typestate pattern is but the TL;DR: is "verifying correct traversal of a state machine at compile time". For example, making it a compile-time error to try to set an HTTP heade…

    Comment linking /blog/rust-typestate/

    on “An RFC that adds support for Rust to the Linux kernel”
  12. Submitted Safely writing code that isn't thread-safe as a story · 209 points

    HN discussion
  13. > Thank you for refraining from repeating this absurd hyperbole. To be fair, I wouldn't quite label it as "absurd", though it is hyperbole. With near-extreme levels of discipline you can write very solid C code - this involves having ~100% MCDC coverage, using sanitizers, static analysis tools, and likely outright banning a few functions. It's doable, especially if your project doesn't have to move fast or has extre…

    Comment linking /blog/bare-metal-wasm/

    on “A case against security nihilism”
  14. Submitted I made a thing to help you make a thing out of a keypad as a story · 124 points

    HN discussion
  15. > What is the realistic best-case scenario? Finding latent logic and memory errors, gaining greater confidence, security and velocity. > Has anyone demonstrated that well-written Rust code should run faster than C Should? No. Can? Yes. See Brian Cantrill’s http://dtrace.org/blogs/bmc/2018/09/28/the-relative-performa... or Cliff Biffle’s http://cliffle.com/p/dangerust/

    Comment linking /p/dangerust/

    on “Translating Quake 3 into Rust”
  16. Submitted Learn Rust the Dangerous Way as a story · 110 points

    HN discussion
  17. Yes, the most recent example I can think of is http://cliffle.com/p/dangerust/ in which the author translates heavily optimized C to Rust in a quite mechanical way. It comes out being slightly faster. In the last part they rewrite it in idomatic Rust and it ends up even faster again without any of the bespoke optimizations that the C code used or any unsafe Rust. In many instances the Rust type system should allow t…

    Comment linking /p/dangerust/

    on “Translating Quake 3 into Rust”
  18. Submitted On Hubris and Humility as a story · 105 points

    HN discussion
  19. Author also wrote "Learn Rust the dangerous way". > In this series, I'm trying something different. Let's take a grungy, optimized, pointer-type-punning, SSE-using, heap-eschewing, warning-disabling C program and look at how we could create the same program in Rust. http://cliffle.com/p/dangerust/0/

    Comment linking /p/dangerust/0/

    on “Rewriting m4vgalib in Rust”
  20. Submitted Why Rust mutexes look like they do as a story · 37 points

    HN discussion
  21. I'm not working in safety critical systems, but our embedded OS doesn't do any dynamic memory allocation at all, and Rust still helps quite a bit even without that. https://cliffle.com/blog/on-hubris-and-humility/

    Comment linking /blog/on-hubris-and-humility/

    on “AdaCore and Ferrous Systems Joining Forces to Support Rust”
  22. Submitted Prefer Rust to C/C++ for new code as a story · 13 points

    HN discussion
  23. Yes, we have an in situ dump facility, which Cliff mentioned at the end of [0]; it's been essential for debugging these issues when we hit them. [0] https://cliffle.com/blog/who-killed-the-network-switch/

    Comment linking /blog/who-killed-the-network-switch/

    on “The server chose violence”
  24. Submitted The Server Chose Violence as a story · 11 points

    HN discussion
  25. Hubris is not an academic exercise: it runs at the heart of every element of the Oxide rack (compute sled, switch, power shelf controller) -- and its design is informed by delivered utility above all else. Indeed -- and as Cliff elaborated in the blog -- REPLY_FAULT was something that he thought initially perhaps too aggressive, but it was our own experience in building, deploying, and (it must be said!) debugging t…

    Comment linking /blog/who-killed-the-network-switch/

    on “The server chose violence”
  26. Submitted Rewriting M4vgalib in Rust as a story · 9 points

    HN discussion
  27. > I believe Hubris doesn't even allow new kinds of processes at runtime; all possible executables must be determined at compile time. Correct. From [0]: "Hubris is an aggressively static system. The configuration file defines the full set of tasks that may ever be running in the application. These tasks are assigned to sections of address space by the build system, and they will forever occupy those sections. Hubris…

    Comment linking /blog/on-hubris-and-humility/

    on “The server chose violence”
  28. Submitted The Typestate Pattern in Rust (2019) as a story · 7 points

    HN discussion
  29. I don't know the current state of go package management but I do know the equivalent Go project cited Rust's package manager Cargo as a good reference for developing their own. You forget Rust's standard library is quite minimalist and you get to sample competing libraries which often use interchangeable interfaces. In particular there are several crates (libraries) which make handling CLI arguments convenient. If y…

    Comment linking /blog/rust-typestate/

    on “Ffsend – Share Files from the CLI: A Firefox Send Client Written in Rust”
  30. Submitted Making My Website Faster as a story · 5 points

    HN discussion

Search all of HN for cliffle.com

Linked by the same people?