DEV Community

Hulk in Public
Hulk in Public

Posted on

I’ve Given Up on Bun.

Bun’s implementation language has been migrated from Zig to Rust.

I have no intention of criticizing either Zig or Rust. I think both are excellent languages.
What I want to criticize is Bun’s development process.

Rewrite Bun in Rust #30412

Blog post with details coming soon.

It passes Bun's pre-existing test suite on all platforms (and fixes several memory leaks and flaky tests), the binary size shrinks by 3 MB - 8 MB, the benchmarks are between neutral and faster - and most importantly, we now have compiler-assisted tools for catching & preventing memory bugs, which have costed the team an enormous amount of development & debugging time over the years.

The codebase is otherwise largely the same. The same architecture, the same data structures. Bun still uses few 3rd party libraries. No async rust.

To try this, run:

bun upgrade --canary

Please do file issues if you run into any. If this thread gets crazy I will lock it.

Note:

  • Still some optimization work to do before this lands in non-canary version.
  • Still some cleanup work to do (which will come in a series of follow-up PRs)

github pr rows

I have never seen a diff this large before.
What is even more surprising is that, using Claude Code, they reportedly went from implementation to review and merge in less than a week.

Anthropic, which owns Bun’s developer Oven, will likely use this “success story” to further market Claude models and tools.

Even if the migration to Rust has solved the memory leak issues, and even if AI implemented excellent code at incredible speed, I am dismayed by a development process that can release code almost instantly without much review.

To be clear, I am not claiming that AI-generated code is evil. AI can produce useful code, and I also rely on vibe coding in areas where the security risk is low.

But I still review the generated code again and again before I trust it.

My criticism is directed at the act of releasing code without taking full responsibility for it — that is, shipping a massive change without carefully reading and understanding every part of the diff.

Given the sheer size of this change, I do not believe it was physically possible for the Bun development team to thoroughly review all of it in less than a week. That, not the use of AI itself, is what I find unacceptable.

Some people say, “This is the first step in a gradual experiment. It will get better from here, and the Rust code will become more refined as unsafe code is eliminated.”
Don’t be ridiculous. My products—SuperRails and LazyCafe —use Bun. Are my products Anthropic’s sandbox?

In the near future, I plan to migrate SuperRails from Bun to a pnpm-based esbuild setup. I will consxider similar changes for other products, including LazyCafe.

Anthropic and the Bun development team are so focused on short-term problems—how to go public as quickly as possible, and how to resolve memory leak issues as quickly as possible—that they lack the perspective of keeping these tools and products in society for the long term.

This way of doing things does not align with my development philosophy: quietly running businesses that can survive for decades.

Super Rails | Rails Boilerplate for Solopreneurs

A production-ready Rails boilerplate with Devise, Avo, Stripe, ViewComponent and more. Skip the setup, ship your MVP in days.

favicon super-rails.com

Top comments (0)