28 comments

[ 4.6 ms ] story [ 86.9 ms ] thread
What makes Bun Bun is all the things that got removed from this project. Node is already powerful enough and well maintained. Why would anyone use this?
Compiling to a single binary for prod is the killer feature imo.
The developer is quite clear about not wanting to make Bun. They want to make a reusable JavaScript runtime for Zig. How would you execute a Node runtime in Zig?
Heroic effort, sifting through that code I mean, but frankly I would have started a new one from scratch, the only thing of value is the name/popularity of the original project.
As usual, most forks created out of community rupture eventually die.
There seems to be some confusion here (including in the linked discussion?) about what this is. This is not continuing the development on the original Bun (Zig) codebase.

It is extracting a subset of that codebase for deployment purposes. The full version of Bun (presumably in Rust?) will continue to be used for actual development.

So it is not a replacement for Bun, but a supplement to it.

https://news.ycombinator.com/item?id=49018157

(comment deleted)
But according to Andrew Kelly, Bun was full of bad Zig practices. So why did they keep pushing forward with Zig?
Oh no, it tastes like Andrew Kelleys problem again!

Forking an "embarassing project" is really something.

Edit: Huh? Downvote explanations are welcome. I wrote only what Andrew Kelley wrote.

Andrew probably doesn’t control what the entire community does
Does it work with WSL1? That’s all I care about.
i dont see the point of this to be honest, if rust is actually better for bun why are you people just hating on it for no reason? a software doesnt have to be written in your favourite language for it to work. bun was a sloppy project is zig and still sloppy in rust
I think it's the other way around. Bun is being ported from Zig to Rust for no significant benefit, but just for the sake of using AI. Bun doesn't gain any significant performance improvements. The codebase is now filled with unsafe blocks, which undermines many of Rust's safety guarantees. On top of that, it hasn't undergone enough real-world testing to ensure it works correctly.
I don't understand why the git history has been pruned in this fork.

According to the first commit in this fork:

> Squashed as a single orphan commit — the original oven-sh/bun history isn't relevant to this stripped fork and its shallow clone doesn't push cleanly to a fresh remote.

IMHO it's always a bad decision to do that. Here, all commit authors are lost. The original history is always relevant.

> in this fork

Not a fork, but a new project that takes a subset of the old Bun code to create something new, meant to complement Bun.

“Cruller is not intended to replace Bun for development. It is a minimal, specialized runtime for executing production code. In any case, I do not want to throw away such a large codebase that has taken several years to build. It makes more sense to turn it into a convenient embeddable library that can be used throughout the Zig ecosystem.”

I hate that people git squash merges into dev, it always adds an extra layer of unnecessary ceremony when fixing your original branch, as opposed to just pulling the latest back into your original branch, then fixing the one line or whatever that was affected after merge, and now your git history is incompatible, so you have to delete your local branches because they're pointless now. Git squash should be done before your PR if you want to nuke dumb commits, but I prefer to have it all, if you want to find the key commits, tag them!
Yeah, this is one thing you should absolutely never, ever do as a responsible developer. It makes future debugging much more difficult (destroys git blame) and also is a huge dump on previous contributors who don't get credit for their work in the fork. If solenopsys is serious about the fork he should redo it. Throwing away history willy-nilly is such a giant red flag that I think he will have trouble attracting any contributors.
One thing to point out is all the author's comments seem LLM generated and so does the README and the latest commit to the branch (large explanation in a comment and then change)..
You can point it out, but we should also mentioning that the author also points it out:

AI / LLM usage disclosure

AI was used as an engineering assistant for parts of the Zig 0.16 migration, build/debug investigation, and focused test work. The project scope, architecture decisions, review of changes, and build/test verification remain maintainer-directed. This is not a purely AI-generated project.

> My idea is to strip the system down as much as possible and leave only what is required for production.

> Development would be done using the full Bun runtime, while production would use its lightweight fork, Cruller. I do not have the resources of the Oven team to develop and maintain a massive general-purpose runtime, so I want to focus on specific production requirements.

I don't know about others, but I don't think I would deviate my development runtime from my production runtime so significantly. The chance for behavior that only rears its head in production is too high for my liking.

This got me thinking, What if you feed Bun's code into AI, and instead of Rewriting it in Rust, tell it to follow TigerStyle as much as possible?
Nice this is going to be a fun project to watch for 2 weeks before everyone forgets about it!
The statement is weird, of course it is aiming at replacing bun, and it might not be a bad thing. Not sure what that clarification serves.
(comment deleted)