frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

The limits of Rust, or why you should probably not follow Amazon and Cloudflare

https://kerkour.com/the-limits-of-rust
42•randomint64•1h ago

Comments

Aurornis•1h ago
Lots of tortured logic in this post.

1. You shouldn't pick a programming language the team doesn't know. That's common sense, not an argument against Rust.

2. Rust ranks lower on the most used languages list because it's newer than Java, Python, C, and all of the others higher on the list.

3. You don't need to use async Rust. If you do, I disagree that it's as hard as this is implying, but I would agree that it's not as easy as writing sync code.

4. Rust projects don't decay like this is saying. Rust has editions and you can stay on an older edition until you're ready to port it forward. My experience with jumping to a new Rust edition has been easy across all projects so far. It's funny that they argue that adding new features to the language leads to unmanageable complexity, because the very next topic argues that the standard library doesn't have enough features.

5. If you want a batteries-included standard library I agree that you should pick Python or Go instead.

Most of the blog is an ad for the author's book. I was hoping this post had some substance but I think they chose the title first to attract clicks for the book ad and then tried really hard to find some content for the article second.

traderj0e•39m ago
For the use cases the author is alluding to, you do need to use async. Non-cooperative threaded multitasking isn't a real choice for backends, and Rust doesn't have virtual threads.

Before Java got virtual threads in Project Loom, people were typically using some promises equivalent even though it mangled the heck out of all your code, cause they didn't want to be doing blocking stuff with a thread pool. That was a big motivator for Go and Kotlin coroutines, and why Rust and Python put so much effort into adding event loops after the fact.

jen20•22m ago
> why Rust and Python put so much effort into adding event loops after the fact.

Perhaps Python, but Rust went the other way - it had all that stuff built and it was removed.

traderj0e•16m ago
Er yeah technically the event loop isn't part of Rust, just the async/await syntax. But it's implied that you're going to use some event loop with it.
tracker1•12m ago
No, it's implied that you're going to use some sort of async runtime with it... said runtime can be simple real threads, a thread pool or virtual threads and there are implementations for all of them. And even then, it's super easy to start a new real thread in rust, around any async runtime.
tracker1•14m ago
For that matter, even if you do use async, if you're writing a service based app (such as web services), IMO, you'd probably just want to center on tokio and axum, then stick to the tokio ecosystem. The main reason it's not a blessed standard library thing, is that Rust can scale down into embedded systems usage, and you aren't going to use something like Tokio there... that doesn't mean you shouldn't just use what everyone else does at a higher level application.

Also, in regards to OP's reference to changes to Rust, it's not changes/additions or bug fixes that should be a concern, it's the number of breaking changes. For a contemporary counter example, look at how much C# has changed since the .Net Core fork started out... They're on version 11 now (skipped v4), and that doesn't count the library sub-version shifts along the way. And a lot of critical banking infrastructure is written in and running on it (as well as Java). Your money is literally relying on it.

irishcoffee•1h ago
This gets so old. Rust is a programming language. It does some things really well, some things less so. It isn't a panacea, it's a tool. People can use it because they like it, right-tool-for-the-job or not. People can hate it, hating a programming language is one of the most benign things to hate in the whole world. "Language-ist" is a world I never want to live in.

Feels like there are some people who love rust, and some people who hate rust, and most everyone else doesn't give a shit. Everyone is right and everyone is wrong, depending on who you ask.

Can't we just go back to the emacs vs vi debate? Is that the itch people are trying to scratch?

mwigdahl•54m ago
vi would be much easier to rewrite in Rust.
traderj0e•47m ago
The post doesn't hate on Rust, it's more saying you probably shouldn't use it for high-level code like a web backend. Which is pretty reasonable.
vablings•31m ago
I have been churning away writing a custom backed in rust using Dioxus, it is excellent for this kind of high level work.
scuff3d•35m ago
The annoying thing about Rust, or at least the hype around Rust, is that people want to in use it for bloody everything.

We have absolutely no need for it at work. We're writing micro services that run in K8s with no extreme performance requirements. Nobody on the team knows the language (I know it better than the people arguing for it, and I don't know more then the basics). And yet, every couple of weeks, I'm having to talk someone out of switching certain services over to it. It's like a damn disease.

vablings•29m ago
Because the attraction of rust is powerful. The same toolkit allows you to write code for a microcontroller or a full fat arm webserver, the rules are the same and the language is strong.

The best bit about writing rust is the reason why it kinda sucks for corporations. You can "finish" your code

cbsmith•1h ago
This is a bizarre article, and it kind of reminds me of the concept that the only truly good software is the software you've never used.
egorelik•1h ago
A common thread I see in this, and other articles of its kind, is that rarely do they come out and say what kind of project they are working on, leaving the headline to sound generically applicable. I can make some guesses, given the emphasis on async, that they contrast with Go, and the mention of systems programming as an exception. But after enough of these, one would get the impression that Rust is primarily a backend language, competing with other backend languages, that happens to also be good for systems. I'm not sure that is even the use case driving corporate adoption.
traderj0e•31m ago
The article should've been clear about use cases. I think the reason for the focus on backends is because that's where people keep randomly wanting to rewrite in Rust.
tialaramex•3m ago
The big driver for corporate adoption is that this is probably a Silver Bullet in the sense meant in "No Silver Bullet". An order of magnitude improvement for software engineering.

I think the sort of person who figures they don't need to read the book because the title told them there was a Murder on the Orient Express believes Brooks says that it's just all irreducible complexity, too bad, stop looking. In fact "No Silver Bullet" says nothing of the sort and we would be astonished if, after so much time, literally none were discovered.

There are plenty of domains where Rust makes sense if you could just choose Rust, but probably doesn't make enough sense that you should retrain or even re-hire a whole team. Google spends money training devs who don't know Rust, because it's getting enough value out that it makes sense to do that, your web slinging business running on razor thin margins is probably fine in PHP or whatever and should not buy Rust training.

unethical_ban•57m ago
I don't have a problem with this post, in fact I think it fully redeems any criticism by describing the stronger use cases for the language.

Takeaways:

If picking an arbitrary language to learn, if you are building small-to-medium scale things that require async, rust is not the first thing to reach for.

The stdlib and the package ecosystem is a mess.

---

Use if:

If you need gigascale performance and have the resources to learn it and deal with the complexity of async.

If you are writing performant global OS libraries.

If you are writing IoT and want something with more protection than C.

traderj0e•42m ago
Is async in Rust really this bad? Last time I used Rust was before that existed. I know it's a pain in Python because they bolted it on way after, but in JS it's a breeze because everything standardized on promises early.
nothinkjustai•38m ago
No it’s not bad at all. If you’re creating a library you might run into some hard problems, but for application code it’s pretty easy.
steveklabnik•29m ago
Rust’s async makes some design decisions that make it a unique feature: no other language has zero allocations to do async, for example. (In C++’s version you can get it to do no allocations if you do certain things, like making the required allocator a no-op, in my understanding, but it conceptually requires a call to an allocator)

This makes it suitable for a much wider variety of tasks than other languages with similar features, but does mean that there are more details that you need to care about than in other languages that are higher level.

This means it is controversial: some people would prefer a higher level experience, but for those who do use it for its full range of tasks, it’s great.

There are some rough edges, but it’s just a feature that, even outside of Rust, some people just fundamentally dislike. So it draws a lot of heat from all sides.

It is also probably the single largest driver of adoption of the language. Rust started truly taking off once it landed.

traderj0e•23m ago
"it’s just a feature that, even outside of Rust, some people just fundamentally dislike" is why I have a hard time gauging this. I know Python users whine about it endlessly just because it's a feature from JS, even though Python's existing concurrency features were the worst of both worlds.

The Rust-specific async sounds interesting. I should give it a try.

tracker1•1m ago
I can only speak for myself, but I kind of refused to get started with Rust until async landed... only because it's kind of a core of scalable services. I think it's pretty great in that you can use an async runtime, but still launce native threads if you want/need to for specific scenarios. It's pretty great and for most high level tasks, I wouldn't classify it as significantly more difficult than C#.

A few other things I've done with it have been written by AI as much as myself... which has similarly been pretty nice... Rust code can be very easy to reason with (lifetime syntax not withstanding). For some reason Rust lifetimes burn my soul.

asa400•17m ago
> Is async in Rust really this bad?

No, it's not. It works. Perfect? No, absolutely not. There is plenty you could improve, plenty of rough edges you could smooth out. Stuff that caused us problems at the job I had writing low-ish level machine control services. But it's totally workable and we were able to ship working devices, especially compared to doing async stuff in other most other languages, especially the memory-unmanaged ones.

Kind of like Rust itself, a ton of people have tried it bounced off it because they couldn't get it working in 10 minutes, and in doing so have declared it impossible/for geniuses only/broken/ecosystem-destroying. The narrative around async Rust is probably 70% meme/bad PR, 30% real, actual issues that could be improved.

I hope this comes off as fair. I don't want to excuse any of the shortcomings, but it's a working, useful tool.

tracker1•6m ago
Funny... I started off with very little knowledge, totally cheated with what I wanted to do by cloning everything crossing various library boundaries and it still worked surprisingly well. Then I learned about (A)RC, Box etc... and I still kinda really hate the lifetime syntax.

Note: most of what I've used it for has been relatively simple... API's with tokio and axum in rust are emphatically not much more difficult than say C# with FastEndpoints, or JS/TS with Hono. It's a bit different.

Aurornis•15m ago
If someone finds normal ownership concepts in Rust to be difficult, making the leap to async is only going to make that worse.

I don't think it's friendly to Rust beginners but I also think the complaints about if have been overblown

gamander2•41m ago
Nobody has ever seen or heard Wesley Wiser talk. Supposedly he's the rust compiler team lead. I claim he's an NSA front end. Prove me wrong.

There is no reproducible build of the official rustc binary. They claim they're using a modified version of LLVM.

I am moving my projects to Cangjie, I no longer trust _any_ American piece of software.

ben-schaaf•36m ago
> Between January 2020 and May 2026 Rust has seen 54 releases, which amounts to 7500 lines of changelog. > During the same period, there was 12 Go releases, 12 Node.js releases (but only 2 LTS) and 5 Python releases.

Some corrections:

Rust saw 54 (I assume that's correct, I didn't recount) minor releases, with a few minor breaking changes. If we only count editions there were 2 releases, but again those don't break backwards compatibility.

Python saw 5 major releases, each breaking backwards compatibility. Counting all releases they had 132.

Node has an LTS every year. There were 6 LTS versions in the last 6 years. Those releases also included major breaking changes.

Go had no new major version, like rust it's only made minor changes.

So going by the author's own evaluation, rust and go are considerably better for project decay.

> For example, I just looked at the dependencies of a small project I'm working on, and we have 5+ (!) different crypto libraries: 2 different versions of ring, aws-lc-rs, boring, and various libraries from RustCrypto

ring is explicitly an experiment, not suitable for use. My guess is the author looked at their Cargo.lock to determine what duplicated dependencies they have.

For the uninitiated, rust libraries can have optional dependencies that only get included under certain conditions. A common pattern is for a library to support multiple underlying implementations, such as different crypto libraries. For instance rustls has both ring and aws-lc-rs as optional dependencies, meaning that both get included in the Cargo.lock file when resolving dependencies. That doesn't mean that both are actually being used.

aabhay•33m ago
Ring is a de facto standard for better or worse. In our codebase we basically have no choice but to use it
nothinkjustai•36m ago
Weird post. One could pick any language OP recommends over Rust and find just as many if not more reasons not to use it.
pornel•19m ago
It's a rehash of a bunch of old misconceptions. I thought we've buried these when people got actual experience with Rust.

The dumbest one is counting changelog lines. Have you even read them? These days most of them are "obscure libstd function is now allowed in const contexts".

The regular Rust releases include compiler improvements, libstd evolution, and build system tweaks. Nobody's saying C keeps changing because LLVM has a long changelog or CMake added a new feature.

Setting up a free *.city.state.us locality domain

https://fredchan.org/blog/locality-domains-guide/
204•speckx•2h ago•47 comments

Open Source Resistance: keep OSS alive on company time

https://ossresistance.com/
62•mikemcquaid•1h ago•23 comments

Haiku

https://www.haiku-os.org
25•tosh•31m ago•1 comments

S-100 Virtual Workbench

https://grantmestrength.github.io/S100/
28•rbanffy•1h ago•3 comments

Xs of Y – roguelike that names itself every run. Written in 4kLoC

https://github.com/nooga/xsofy
36•andsoitis•3d ago•11 comments

Reverting the incremental GC in Python 3.14 and 3.15

https://discuss.python.org/t/reverting-the-incremental-gc-in-python-3-14-and-3-15/107014
111•curiousgal•3d ago•27 comments

Leaving GitHub for Forgejo

https://jorijn.com/en/blog/leaving-github-for-forgejo/
355•jorijn•3h ago•190 comments

An idiot's guide to lead optimisation for proteins

https://magnusross.github.io/posts/protein-lead-optimisation-1/
77•magni121•2d ago•5 comments

I moved my digital stack to Europe

https://monokai.com/articles/how-i-moved-my-digital-stack-to-europe/
635•monokai_nl•5h ago•427 comments

New stainless steel can survive conditions for hydrogen production in seawater

https://www.sciencedaily.com/releases/2026/05/260510030950.htm
219•HardwareLust•2d ago•93 comments

Preserving Fisher-Price Pixter

https://dmitry.gr/?r=05.Projects&proj=37.%20Pixter
153•dmitrygr•2d ago•26 comments

Heritability of human life span is ~50% when heritability is redefined

https://dynomight.net/lifespan/
27•surprisetalk•1d ago•14 comments

Kickstarter is forced to ban adult content by payment processors

https://kotaku.com/kickstarter-is-the-latest-platform-seemingly-forced-to-ban-adult-content-by-pa...
154•stalfosknight•1h ago•113 comments

50K Tahoe residents need power as utility eyes redirecting lines to data centers

https://fortune.com/2026/05/12/lake-tahoe-data-center-49000-residents-power-source/
50•cdrnsf•1h ago•38 comments

The US is winning the AI race where it matters most: commercialization

https://avkcode.github.io/blog/us-winning-ai-race.html
36•akrylov•3h ago•76 comments

Substrate (YC S24) Is Hiring a Technical Success Manager

https://www.ycombinator.com/companies/substrate/jobs/T2fMBhD-technical-success-manager
1•kunle•4h ago

Restore full BambuNetwork support for Bambu Lab printers

https://github.com/FULU-Foundation/OrcaSlicer-bambulab
606•Murfalo•18h ago•267 comments

Googlebook

https://googlebook.google/
882•tambourine_man•23h ago•1465 comments

Deterministic Fully-Static Whole-Binary Translation Without Heuristics

https://arxiv.org/abs/2605.08419
266•matt_d•12h ago•63 comments

Show HN: Needle: We Distilled Gemini Tool Calling into a 26M Model

https://github.com/cactus-compute/needle
578•HenryNdubuaku•22h ago•166 comments

Web Server on a Nintendo Wii

http://wii.sjmulder.nl/
75•adunk•3d ago•19 comments

Using OR-Tools CP-SAT for Scheduling Problems

https://atalaykutlay.com/or-tools-cp-sat-for-scheduling-problems.html
54•akutlay•5h ago•18 comments

Nailing jelly to a wall: is it possible? (2005)

https://greem.co.uk/otherbits/jelly.html
36•microsoftedging•4d ago•11 comments

Cost of enum-to-string: C++26 reflection vs. the old ways

https://vittorioromeo.com/index/blog/refl_enum_to_string.html
37•sagacity•8h ago•49 comments

Why senior developers fail to communicate their expertise

https://www.nair.sh/guides-and-opinions/communicating-your-expertise/why-senior-developers-fail-t...
728•nilirl•1d ago•311 comments

How to make your text look futuristic (2016)

https://typesetinthefuture.com/2016/02/18/futuristic/
444•_vaporwave_•20h ago•56 comments

Fragnesia Made Public as Latest Linux Local Privilege Escalation Vulnerability

https://www.phoronix.com/news/Linux-Fragnesia
12•mikece•52m ago•1 comments

The Boring Part of Bell Labs (2025)

https://acesounderglass.com/2025/11/15/the-boring-part-of-bell-labs/
100•surprisetalk•5d ago•14 comments

CERT is releasing six CVEs for serious security vulnerabilities in dnsmasq

https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2026q2/018471.html
355•chizhik-pyzhik•22h ago•192 comments

Scrcpy v4.0

https://github.com/Genymobile/scrcpy/releases/tag/v4.0
331•xnx•20h ago•49 comments