Alice Ryhl
Rust engineer at Google working on Android; maintains Tokio and works on Rust in the Linux kernel.
Alice Ryhl did not write this page. ppll compiled it from their own words, each linked to the source. Is this you? · Report a mistake
Latest GitHub
What they believe
-
Rust's defining experience is that once the code compiles it works — not literally true, but true often enough that people keep saying it.
I think part of what I liked about Rust is this feeling that as you write the code when it compiles it works. I mean this has to be in quotes right because obviously it's possible that there are bugs but this is something a lot of people say about Rust and there's a reason people say it even though it's not necessarily literally true.
youtube.comSaid 20 May 2026This on korrents
The bold line is korrents’ wording; the quote is theirs. These one: what they wrote before what they said aloud, one per source, newest first.
Feed
As its own page →Hiding
9 August
20 May
From one piece Why Rust is different, with Alice Ryhl 15 beliefs · youtube.com
-
Their words
Honestly, if the team doesn't sign off on it, it doesn't happen. I mean if something is really contentious contentious or really big it will probably end up being discussed at a conference for example.
-
Their words
My opinion is that the least mature area is front end. There have been some attempts to compile Rust to Web Assembly and then run it on the web as a front end as a replacement for TypeScript. But if I was writing a web server, I would totally use Rust for the back end and TypeScript for the front end. I would not really go the web assembly route.
-
Their words
So usually it will never show up in say a backend server. You would have zero uses of unsafe there. Generally when unsafe is used, it's to add a new feature to the language.
+ 12 more
-
Their words
And it's interesting to point out here that unsafe does not disable the borrow checker or anything like that. It just gives you a few more operations you can perform that are not safe in general.
-
korrents.com
The guarantee Rust makes is conditional: write no unsafe, and no amount of bad code can produce a memory-safety bug.Their words
What Rust ensures is that if you have no use of unsafe, then no matter how stupid your code is, you will never have one of those bugs.
-
Their words
I think the most tricky thing people run into is how should you put together your data structures? I mean for your code you can mostly do the same things as you can in other languages. I mean that's not entirely true but the big thing is really the data structures.
-
Their words
Even for back end, it can be a problem because if you have a request incoming right when it checks all of your objects like you have some sort of latency spike where you it takes much longer to to reply. So that's one of the reasons it can be helpful in in back end as well.
-
Their words
I think where Rust is really unique is in the combination of things. So on one hand, it it doesn't have a garbage collector and it it's usable in low-level context like the Linux kernel or firmware or whatever.
-
Their words
Memory safety is this idea that no matter how stupid the code you write is, it's not going to have a certain class of bugs. And this is the, you know, the kind of bug that usually leads into security vulnerabilities.
-
Their words
So, here I actually think it's even stronger. The thing with C++ is that if you make a mistake, right, in in JavaScript, maybe you take down your server, which is already bad enough, but in C++ when you make a mistake there, now it's actually a security vulnerability most of the time.
-
Their words
I think this is kind of leads to another way that Rust really helps with reliability, which is that if you're refactoring, I think Rust is really good at telling you all the places you need to update. I've done this sometimes where I would refactor something. I change the code. I change the return type or whatever it is, and then I just fix the compiler errors and until the compiler stops shouting. And then once I've done that, I've updated every place I need to update.
-
Their words
Now the thing is you can of course write examples in your documentation and Rust makes all examples into tests. This means that if you change the underlying code now your test fails. And so this means that you can't even you can't forget to update your examples in your documentation.
-
korrents.com
For a TypeScript team, Rust belongs on the backend — API servers — and not in the front end.Their words
But okay, so to begin with, I think when it comes to TypeScript, Rust fits in as the backend language. That's where I would put it. I wouldn't use it in the front end. I think it's a pretty good fit for backends, API servers.
-
Their words
I think to have a language that feels this way you have to have a type system. That's where it all starts.
-
Their words
I think part of what I liked about Rust is this feeling that as you write the code when it compiles it works. I mean this has to be in quotes right because obviously it's possible that there are bugs but this is something a lot of people say about Rust and there's a reason people say it even though it's not necessarily literally true.
5 November 2025
7 June 2025
13 February 2025
11 July 2024
1 November 2023
13 February 2021
21 December 2020
15 August 2020
27 June 2017
18 December 2016
6 December 2016
30 October 2016
Nothing matches.
Beliefs
Korrents What they believe 23 beliefs — each backed by an exact quote.
Each is a — compiled by korrents.com, not by them: the one-line wordings are korrents', the quotes are theirs.
Recent
Rust's defining experience is that once the code compiles it works — not literally true, but true often enough that people keep saying it.
I think part of what I liked about Rust is this feeling that as you write the code when it compiles it works. I mean this has to be in quotes right because obviously it's possible that there are bugs but this is something a lot of people say about Rust and there's a reason people say it even though it's not necessarily literally true.
Why Rust is different, with Alice Ryhl Said 20 May 2026
A language can only give you the feeling that compiling means working if it has a type system — that is where it all starts.
I think to have a language that feels this way you have to have a type system. That's where it all starts.
Why Rust is different, with Alice Ryhl Said 20 May 2026
For a TypeScript team, Rust belongs on the backend — API servers — and not in the front end.
But okay, so to begin with, I think when it comes to TypeScript, Rust fits in as the backend language. That's where I would put it. I wouldn't use it in the front end. I think it's a pretty good fit for backends, API servers.
Why Rust is different, with Alice Ryhl Said 20 May 2026
Show 20 more
Examples in documentation should be compiled and run as tests, so that changing the code breaks the docs instead of quietly outdating them.
Now the thing is you can of course write examples in your documentation and Rust makes all examples into tests. This means that if you change the underlying code now your test fails. And so this means that you can't even you can't forget to update your examples in your documentation.
Why Rust is different, with Alice Ryhl Said 20 May 2026
A compiler that names every place a change breaks turns refactoring into fixing errors until the compiler stops shouting.
I think this is kind of leads to another way that Rust really helps with reliability, which is that if you're refactoring, I think Rust is really good at telling you all the places you need to update. I've done this sometimes where I would refactor something. I change the code. I change the return type or whatever it is, and then I just fix the compiler errors and until the compiler stops shouting. And then once I've done that, I've updated every place I need to update.
Why Rust is different, with Alice Ryhl Said 20 May 2026
The case for Rust is stronger against C++ than against JavaScript, because in C++ an ordinary mistake is usually a security vulnerability.
So, here I actually think it's even stronger. The thing with C++ is that if you make a mistake, right, in in JavaScript, maybe you take down your server, which is already bad enough, but in C++ when you make a mistake there, now it's actually a security vulnerability most of the time.
Why Rust is different, with Alice Ryhl Said 20 May 2026
Memory safety means an entire class of bug is impossible no matter how bad the code is — and it is the class that becomes security vulnerabilities.
Memory safety is this idea that no matter how stupid the code you write is, it's not going to have a certain class of bugs. And this is the, you know, the kind of bug that usually leads into security vulnerabilities.
Why Rust is different, with Alice Ryhl Said 20 May 2026
What is unique about Rust is not any one feature but the combination: high-level reliability with no garbage collector, so it runs in kernels and firmware.
I think where Rust is really unique is in the combination of things. So on one hand, it it doesn't have a garbage collector and it it's usable in low-level context like the Linux kernel or firmware or whatever.
Why Rust is different, with Alice Ryhl Said 20 May 2026
Garbage collection is a problem for backends too, not only for embedded code: a collection that lands on an incoming request is a latency spike.
Even for back end, it can be a problem because if you have a request incoming right when it checks all of your objects like you have some sort of latency spike where you it takes much longer to to reply. So that's one of the reasons it can be helpful in in back end as well.
Why Rust is different, with Alice Ryhl Said 20 May 2026
What trips up newcomers to Rust is not the code but the shape of their data.
I think the most tricky thing people run into is how should you put together your data structures? I mean for your code you can mostly do the same things as you can in other languages. I mean that's not entirely true but the big thing is really the data structures.
Why Rust is different, with Alice Ryhl Said 20 May 2026
The guarantee Rust makes is conditional: write no unsafe, and no amount of bad code can produce a memory-safety bug.
What Rust ensures is that if you have no use of unsafe, then no matter how stupid your code is, you will never have one of those bugs.
Why Rust is different, with Alice Ryhl Said 20 May 2026
The unsafe keyword does not switch the borrow checker off; it only unlocks a few operations you then have to justify yourself.
And it's interesting to point out here that unsafe does not disable the borrow checker or anything like that. It just gives you a few more operations you can perform that are not safe in general.
Why Rust is different, with Alice Ryhl Said 20 May 2026
Application code should contain no unsafe at all: unsafe is how you add a missing feature to the language, not how you write a server.
So usually it will never show up in say a backend server. You would have zero uses of unsafe there. Generally when unsafe is used, it's to add a new feature to the language.
Why Rust is different, with Alice Ryhl Said 20 May 2026
Rust's least mature area is the front end: write the backend in Rust and the front end in TypeScript rather than shipping Rust to the browser through WebAssembly.
My opinion is that the least mature area is front end. There have been some attempts to compile Rust to Web Assembly and then run it on the web as a front end as a replacement for TypeScript. But if I was writing a web server, I would totally use Rust for the back end and TypeScript for the front end. I would not really go the web assembly route.
Why Rust is different, with Alice Ryhl Said 20 May 2026
A language does not need a benevolent dictator: if the responsible team does not sign off on a change, it does not happen.
Honestly, if the team doesn't sign off on it, it doesn't happen. I mean if something is really contentious contentious or really big it will probably end up being discussed at a conference for example.
Why Rust is different, with Alice Ryhl Said 20 May 2026
A design proposal should describe the feature as though it already existed — once as a tutorial and once as reference documentation.
And what this is is that in the guide level explanation, you explain your feature as if you were writing a guide as if the feature already existed. And in the reference level explanation, you explain your feature again as if it already existed, but as if it would be in the language reference instead of a tutorial.
Why Rust is different, with Alice Ryhl Said 20 May 2026
A language can keep changing without a Python-2-to-3 break, as long as code written under the old and the new rules can be mixed freely in one program.
Really the big idea is to say we want the old code to continue working but we still want to change the language. And so the the difference from other kinds of versions of languages I mean Python 2 version Python 3 comes to mind is that you can totally mix and match in any way you want.
Why Rust is different, with Alice Ryhl Said 20 May 2026
The Linux kernel is unique in having thousands of contributors paid to work on it; Rust does well by any other standard and is still nowhere near that.
I would say here that the Linux kernel is truly unique in this particular aspect in that they have thousands of contributors doing it on work time. I actually think that the Rust project is doing pretty well at having people do it and get paid for it like by their employer, but it's nowhere near the to the same extent as as the Linux kernel.
Why Rust is different, with Alice Ryhl Said 20 May 2026
You can contribute to the Linux kernel without touching the kernel, by building the language features the kernel is waiting on.
Another thing that's really cool is you can contribute to the Linux kernel without contributing to the Linux kernel, right? because you might take a Rust language feature we need and implement it and now you've contributed to the Linux kernel indirectly
Why Rust is different, with Alice Ryhl Said 20 May 2026
Rust is no longer experimental in the Linux kernel — the maintainers agreed that at their December 2025 summit.
The big news were that at the Linux kernel maintainer summit, we agreed that Rust is no longer experimental in the kernel. That was really big for us compared to the previous year.
Why Rust is different, with Alice Ryhl Said 20 May 2026
Rust may be the best language for AI agents to write, because the compiler gives an agent the feedback that tells it what to fix.
I think the same kind of principle applies with agents in that they can talk to the compiler. It will tell them what to fix. So I guess this could be a case. We we'll see. But Rust could be a pretty promising candidate for to use for agents because they can get more feedback and it's just hard it's harder to to ship certain type of bugs or maybe impossible to have certain type of bugs.
Why Rust is different, with Alice Ryhl Said 20 May 2026
Memory-safety bugs are not a skill problem: the mistakes are trivial and there are so many places to make one that even an excellent programmer will.
I mean, that's the thing with memory safety, right? You make some sort of trivial mistake. It it's not some complex thing. It's just you make some trivial mistake and there's a bajillion places you could make it.
Why Rust is different, with Alice Ryhl Said 20 May 2026
You learn a programming language by building something in it, not by reading about it.
Other than that, I think honestly the way you learn a language is you have you have a project. You you implement some sort of project with it. I mean maybe some sort of web server or something.
Why Rust is different, with Alice Ryhl Said 20 May 2026
What is a korrent?
A korrent is a belief a person has stated in their own words: one sentence stating the claim, backed by a quote and a source, kept at korrents.com.
Under a name here, the quoted block is what they actually said. The korrent beneath it is the claim those words support, in korrents' wording — tap it to see the record, its source, and who else holds it.
Nobody here wrote their own korrents. They are compiled from public statements, and a person can change their mind, which is recorded too.
Where they publish
Blog ryhl.io Her blog on async Rust, Tokio and Rust in the kernel. Has a feed.
Recent
- RFC: Pass pointers to const in assembly 5 Nov 2025 The const operand to asm! and global_asm! currently only accepts integers. Change it to also accept pointer values. The value must be computed during const evaluation. The operand expands to the name of the symbol that…
- In-place initialization 7 Jun 2025 This article was originally published on HackMD. It is part of the work that started the in-place initialization Rust project goal.
- RFC: Target Modifiers 13 Feb 2025 This RFC introduces the concept of "target modifiers," flags that can cause unsoundness if compilation units disagree on them. We propose failing the build if rustc detects disjoint target modifier sets between units, w…
Show 9 more
- RFC: #[derive(SmartPointer)] 11 Jul 2024 Make it possible to define custom smart pointers that work with trait objects. For now, it will only be possible to do this using a derive macro, as we do not stabilize the underlying traits.
- Setting up Binder for the future 1 Nov 2023 We're generally not proponents of rewrites (nasty uncomfortable things that make you late for dinner!). So why rewrite Binder?
- Actors with Tokio 13 Feb 2021 This article is about building actors with Tokio directly, without using any actor libraries such as Actix. This turns out to be rather easy to do, however there are some details you should be aware of: Where to put the…
- Async: What is blocking? 21 Dec 2020 The async/await feature in Rust is implemented using a mechanism known as cooperative scheduling, and this has some important consequences for people who write asynchronous Rust code. The intended audience of this blog…
- Temporarily opt-in to shared mutation 15 Aug 2020 The purpose of this blog post is to celebrate the anniversary of two really neat methods on the Cell type: Cell::from_mut This method turns a &mut T into a &Cell<T>. Cell::as_slice_of_cells This method turns a &Cell<[T]…
- Backblaze B2 Rust library 27 Jun 2017 This page functions as a home page for my rust library backblaze-b2. Here are some links to the project: crates.io Documentation Git repository
- The Game of Life on a PCB 18 Dec 2016 I've created a printed circuit board (PCB) that simulates the game of life on a 5 by 5 LED grid, and can be remote controlled with Bluetooth. The project was created in collaboration with another student as a school pro…
- Fractals on the Riemann Sphere 6 Dec 2016 In order to investigate the behaviour of Newton Fractals at infinity, I've plotted Newton Fractals on the Riemann sphere. Here's an animated video of a Newton Fractal plotted on the Riemann sphere using YouTube's 360° v…
- Introduction to Newton Fractals 30 Oct 2016 When I try to learn a new programming language, I don't write a hello world. Instead, I write a generator of newton fractals. Here's an example of a newton fractal:
Link verified 20 Sept 2026. Recent items update automatically from the channel.
About the English under a post
Some people here publish in a language other than English. Where they do, this site shows a machine translation beneath the post, in this typeface — the site's own, not theirs.
The post itself is never changed, moved or hidden: what is set in the serif above is exactly what the person published, and it is what to quote them on. A translation can be wrong in ways that matter, especially about tone.
Only the post's own words are translated. A quoted post, a linked article and a belief on korrents.com are left in their original language.