Bun is being ported from Zig to Rust
139 points by SergeAx 2 hours ago | 71 comments

stingraycharles 55 minutes ago
Interesting to see this when the current top post on HN is someone worrying about Bun as it was acquired by Anthropic. The top comment there describes “Anthropic does experiments on their own codebase, the Bun team is not gonna do the same vibe coding experiments”.

Yet here we are, what looks like a massive undertaking for vibe coding.

Time will tell how this will turn out. Would be nice if the Bun maintainers could give some clarification about what they’re doing here, and why they’re doing this.

reply
mroche 45 minutes ago
I do not know if there's any overlap between these teams, but it seems like Anthropic itself is fairly invested in the Rust ecosystem.

They recently proposed some of their internal tools to be the official Rust implementation[0] of Connect RPC[1]. As a protobuf based library set, this includes a new Rust-based protobuf compiler, Buffa[2].

[0]: https://github.com/orgs/connectrpc/discussions/7#discussionc...

[1]: https://connectrpc.com/

[2]: https://github.com/anthropics/buffa

reply
Avicebron 50 minutes ago
I imagine claude is better at Rust than Zig?
reply
allthetime 38 minutes ago
Zig is a moving target. 0.15 -> 0.16 includes some massive structural changes concerning IO and async/threading.

Claude has absolutely no idea what it's doing with bleeding edge zig unless you feed it source and guide it closely (in which case it's useful for focused work) - I'm building a game engine & tcp/udp servers with it and it requires a hands-on approach and actually understanding what's being built.

I imagine these are not really concerns with rust at this point.

In my ideal world the team behind bun would be putting in the work to keep up with modern zig, but it's starting to look like they are running mostly on vibes in which case rust might be a better choice.

reply
rudedogg 8 minutes ago
> it requires a hands-on approach and actually understanding what's being built.

I think this is true regardless of what language you’re using. I’ve built a lot in Zig and there’s no difference between vibing stuff in it versus TypeScript/React. Claude can “one-shot” them both, and will mimic existing code or grep the standard library to figure everything out.

reply
fcarraldo 45 minutes ago
Contributors and maintainers will also be easier to find in Rust than Zig.

Zig is a great language and I want to see it succeed, but this is a prudent move for Bun.

reply
versecafe 42 minutes ago
This is likely irrelevant given bun has stopped taking community PR's entirely and Jarred is pitching that human contributors should be banned.
reply
etoxin 21 minutes ago
There is like 1,713 open PR's on the Bun repo. I'm assuming all are from Claude or robobun?. I guess this gives us an insight on what the claude-code workflow look likes. Crazy times.
reply
jabedude 5 minutes ago
Where is a source for either of these extraordinary claims?
reply
TheRoque 11 minutes ago
Why didn't they use Rust in the first place then ? All this was true before AI
reply
chrisweekly 33 minutes ago
100%. For many people, Bun is the only reason they've even heard of Zig. I'm not in a position to comment intelligently on comparative language features per se, but when it comes to mindshare and community size, Rust is a clear winner.
reply
unclad5968 41 minutes ago
I don't think Zig is different enough from rust or any other systems language for it to matter. If you can write rust you can write Zig.
reply
jaggederest 33 minutes ago
Anthropic makes claude, claude can write Rust like a champ and struggles at Zig. It's a straightforward "training data" argument.

I think there are even longer term plays that Anthropic should be looking at, in this space, but it seems like they've decided rust is the right thing, so fair play. I would be (am!) thinking about making an LLM optimized high level language that you can generate / train on intensively because you control the language spec.

reply
aabhay 9 minutes ago
Claude doesn’t write Rust like a champ. It’s still miles ahead at js and python than it is at rust. It can do macros and single file optimizations but its gotten really stuck in type hell and tried to dyn everything on multiple occasions for me.
reply
dnautics 24 minutes ago
claude does not struggle with zig? not in my hands anyways.
reply
speed_spread 8 minutes ago
I'm reminded of the old joke "how to shoot yourself in the foot in 25 different languages". The first one was "C - you shoot yourself in the foot." Zig remains very close to that philosophy.

So the difference is not in writing new stuff but in maintaining the existing codebase. Rust's rigidity makes it potentially harder to break stuff compared to Zig's general flexibility. As a project grows and matures, different types of contributors naturally come in and it's unreasonable to expect everyone to learn about historical footguns that may have accumulated.

reply
splittydev 10 minutes ago
Honestly, this kind of thing seems to work quite well with vibe coding. If I remember correctly, the Ladybird JS engine was "vibe-ported" to Rust as well, and it passed 100% of the original test suite, in addition to new Rust tests.
reply
NewsaHackO 46 minutes ago
But why should they? This just seems like the groundwork for an initial refactor and moving from one language to another. They haven't actually committed to switching from Zig to Rust yet. I mean, I get if you are an investor and you want to see if they are using their time effectively, but why would it matter to anyone else?
reply
stingraycharles 25 minutes ago
They’re not required to do so, but like I said, it would be nice, because it removes a lot of speculation. And development is in the open, so people notice what they’re doing.
reply
SergeAx 43 minutes ago
Lots of people, me included, heavily invested their time and expertise into Bun, using it as a daily driver, to bundle production code or even using it in production as a JS/TS runtime. Of course, we are interested in Bun to stay a useful tool. The Anthropic acquisition was worrying enough on its own.
reply
nailer 49 minutes ago
> what looks like a massive undertaking for vibe coding

It doesn’t look like that at all. Do you think that all use of AI is vibe coding?

reply
stingraycharles 16 minutes ago
I think the definition of vibe coding is a bit fluid, in this case I just meant it to be “code fully generated by AI, possibly not fully reviewed by human eyes”. I agree that this definitely not “coding based purely off vibes”, and the approach looks legit.
reply
allthetime 37 minutes ago
what would you call a fully uncommented commit with

"+27,939Lines changed: 27939 additions & 0 deletions"

of new rust code

reply
geodel 8 minutes ago
I'm sure it will be called Systems Programing . Because Rust.
reply
vips7L 12 minutes ago
The blind leading the blind.
reply
heddhunter 19 minutes ago
Just another Monday in 2026.
reply
MarsIronPI 39 minutes ago
It depends on what you mean by "vibe coding". Is AI coding based on an existing implementation vibe coding? What about only from a natural-language spec? How does manual reviewing affect whether or not it's vibe coding?
reply
lmm 37 minutes ago
In practice all use of AI rapidly becomes vibe coding. Even if someone says they're going to carefully manually review everything that's generated, within a couple of days they get bored and just click approve.
reply
jmull 25 minutes ago
While I'm sure you're speaking for many, this is definitely not true across the board.
reply
p-e-w 27 minutes ago
Not to mention that manually writing code is itself a process of understanding. It cannot be replicated by reading code, no matter how carefully.
reply
smohare 22 minutes ago
[dead]
reply
pstuart 51 minutes ago
Porting from one typed language to another seems like a perfect use for LLMs. I can see the appeal of both languages and why to consider such an action (e.g., rust is a mainstream PL vs zig's cult status (no slight intended)).
reply
rtpg 40 minutes ago
I think the big difficulty here is that Rust's ownership model in particular tends to require certain kinds of control flow to avoid a bunch of weird churning/copying, which makes it not as straightforward of a port target from other imperative languages.

Like maybe you get the LLM to try _really hard_ to churn through everything, but this feels like a big case of "perils of the lack of laziness".

Of course if you have a good idea for how to deal with allocations etc "idiomatically" already maybe that works out well. And to the credit of the port guide writer bun seems to have its explicit allocations that are already mapping pretty well to Rust.

reply
pstuart 8 minutes ago
This is all wild conjecture, but I'd assume that teaching the LLM to do that mapping is an achievable goal and then it get's close to automatic -- effectively slurp the source AST into a rust AST and render.

My only experience with ports so far is Python to Go, and it's been near flawless (just enough stupid shit to make me feel justified to be in the loop).

reply
kgeist 8 minutes ago
Interesting how times have changed. Back in 2015, the entire Go runtime (already a mature codebase) was rewritten from C to Go semi-automatically: one of the maintainers wrote a C-to-Go conversion tool (for a subset of C they used) so that it compiled and produced identical output, and then the resulting code was manually refactored to make the Go code more idiomatic and optimized. And now you can just ask a language model.

The slides: https://go.dev/talks/2015/gogo.slide#3

An interesting similarity:

>We had our own C compiler just to compile the runtime.

The Bun team maintain their own fork of Zig too

reply
archargelod 14 minutes ago
Linked commit is probably not the most convincing for this tagline. Here's a branch[0] of Claude mass rewriting Zig code into Rust which is currently at 773,950 additions and 151 deletions:

[0]: https://github.com/oven-sh/bun/compare/claude/phase-a-port

reply
jr-14 28 minutes ago
I want zig to succeed but given that zig is not yet 1.x I'd imagine a large code base like bun would have difficulties addressing major breaking changes. Also given the fact that bun is using a fork of zig https://x.com/bunjavascript/status/2048427636414923250?s=20
reply
ratstew 4 minutes ago
This feels more like a reaction to Zig's anti-LLM policy than anything. Anthropic would probably like to contribute something back to Zig at some point, but I doubt anyone would ever believe their PRs were not written by Claude.
reply
elffjs 26 minutes ago
Comparing this claude/phase-a-port branch with main: “Showing 1,646 changed files with 773,950 additions and 151 deletions.”
reply
inkysigma 57 minutes ago
So I can't tell if the linked commit is an actual attempt or just an experiment but it did always strike me as odd to make a JS runtime in Zig when my impression was there were a lot of work-stopping compiler bugs at the time.
reply
Humphrey 46 minutes ago
I'll be very interested in how this AI port turns out. I am involved in a number of active projects that are being held back by the language / framework is holding back the project, but where a rewrite would be too big of a project to undertake by using only human power.

I've had more success vibe coding Rust than I have in more dynamic languages. I suspect the strictness of the Rust compiler forces the AI agent to produce better code. Not sure. It could be just that I am less familiar with Rust so it feels like it's doing a better job.

reply
hbbio 17 minutes ago
Given they have "unlimited" AI usage, do we expect the port to be complete tomorrow?
reply
yladiz 59 minutes ago
Why? Are there particular reasons that the maintainers of Bun feel the need to attempt to migrate from Zig to Rust?
reply
_--__--__ 50 minutes ago
Possibly related to https://simonwillison.net/2026/Apr/30/zig-anti-ai/ where the Bun team wanted to upstream work to Zig that was rejected by a blanket anti-LLM contribution policy.
reply
kristoff_it 22 minutes ago
reply
_--__--__ 14 minutes ago
That seems totally reasonable but I wonder if there was some head butting in non-public channels given Bun is one of the biggest players in Zig and planned to push through a change like that on their own.
reply
nikeee 49 minutes ago
Zig is a moving target that has breaking changes in every release (which is fine as they are sub-1.0). But that means that AI tools have been trained on outdated syntax/etc. Zig isn't that common, so there is even less training data to begin with.

Rust on the other hand is pretty established by now and has less breaking changes. It also has more compile-time safety-guarantees that makes vibe-coding a bit more confident.

In top of that, Zig has rejected their upstream contributions. So they'd have to maintain their own compiler in the long run, which is probably just technical debt to maintain.

reply
nullstyle 34 minutes ago
Most of my vibe coding is in zig, and it has been my experience that Claude and Codex both keep up with zig changes just fine. Every now and then I catch them writing outdated code that they burn some tokens on, but my experience says your local codebases’s idioms will influence what gets generated enough to stop this from being a problem.
reply
reissbaker 51 minutes ago
Probably an experiment due to Bun's PRs to Zig being rejected (Zig does not allow AI use). If Rust works well enough, and the alternative is maintaining a fork of Zig, I'd guess they'd go with Rust.
reply
philwelch 24 minutes ago
Also, if Zig itself doesn’t accept AI contributions, it’s probably NGMI unless somebody is willing to maintain that fork.
reply
tom_ 23 minutes ago
If the computer can do it for them, then why not?
reply
sourcegrift 36 minutes ago
[flagged]
reply
IggleSniggle 15 minutes ago
Source?
reply
philwelch 19 minutes ago
Normal, emotionally stable people don’t care if the creators of a programming language disagree with them about tariffs.
reply
vips7L 4 minutes ago
Normal, emotionally stable people don’t drive business towards people they disagree with politically. You see that all around the country.
reply
heldrida 21 minutes ago
Absolute nonsense. Why are you creating rumours?
reply
philwelch 14 minutes ago
Why would someone make up such a banal rumor? I’m not saying it’s true, I’m saying who cares?
reply
tipiirai 20 minutes ago
Really? Do you have a source?
reply
thayne 14 minutes ago
When I first heard that bun was written in zig, I thought that was an odd choice for such a large project, mostly because the language is "unstable" and is still making significant breaking changes.

I would guess dealing with breaking changes is a big motivation for this.

reply
heldrida 60 minutes ago
I suspect that an experiment is being run. In any case, that'll be a hell of a story!
reply
Entambi 5 minutes ago
hahaha eat your heart out "don't port it to rust" gang
reply
sourcegrift 27 seconds ago
I don't think problem ever is Rust, Rust is by far the best systems programming language. Problem is fanboys like you.
reply
arthurcolle 25 minutes ago
Could just be an experiment or something. It's Monday, the week is young
reply
booleandilemma 11 minutes ago
Interesting. When I thought of Zig, I thought of Bun. In my mind it was the flagship application for that language. Is there another? I wonder how the Zig team feels about this. To me it seems like Rust has definitively won now.
reply
nothinkjustai 22 minutes ago
Makes sense on merit. There really isn’t room for Zig when Rust exists, is more ergonomic, and also safe.
reply
sergiotapia 25 minutes ago
>*No `tokio`, `rayon`, `hyper`, `async-trait`, `futures`.* No `std::fs`,

I'm not a rust dev but even I kind of notice that tokio is kind of shunned in most projects. Why is that? Is it just bad or what?

reply
Philpax 15 minutes ago
It's not really shunned - it's the standard solution for async in Rust - but it's not the right solution for every project, especially if you have specific requirements for how your project's computation should be scheduled. I would guess that Bun is one of those projects, especially as it needs to be able to schedule JS async work itself.
reply
allthetime 19 minutes ago
You shouldn't have to pull in big complex dependencies to do what should be primitive things. Zig is putting a strong and thought-out effort into getting async & parallelism "right" inside the stdlib. I'm honestly not up to speed with where rust is at with it at the moment, but last time I checked it was a bit of a mess.
reply
dboreham 10 minutes ago
Async is an anti-pattern but sometimes inexperienced developers don't realize that and will infect your codebase with it.
reply
lstodd 18 minutes ago
You try to use it you'll get it. Otherwise it's just words. Like these: rust failed at async.
reply
larpa 50 minutes ago
"Claude, migrate bun to Rust, make no mistakes"
reply
ConanRus 49 minutes ago
instead of writing it once in C++
reply
0x142857 50 minutes ago
you can use both zig and rust in a single project, duh
reply