- Từ Claude Code v2.1.181, Bun được port sang Rust đã được nhúng sẵn, giúp tốc độ khởi động trên Linux nhanh hơn 10%, nhưng đa số người dùng hầu như không nhận ra thay đổi
- Khi kiểm tra các chuỗi trong tệp thực thi, có thể xác nhận Bun v1.4.0 chưa có tag chính thức và đường dẫn tới các tệp mã nguồn Rust
- Trong
~/.local/bin/claude, đã phát hiện 563 tên tệp .rs bao gồm src/runtime/bake/dev_server/mod.rs
- Cũng có thể xác minh phiên bản nhúng là 1.4.0 bằng cách preload tệp TypeScript qua
BUN_OPTIONS rồi in ra Bun.version
- Bản Rust đã được phát hành dưới dạng Bun canary, và thông qua Claude Code hiện đã chạy production trên hàng triệu thiết bị
Bun nền tảng Rust được nhúng trong Claude Code
- Theo Rewriting Bun in Rust, từ Claude Code v2.1.181 phát hành ngày 17/6 đã sử dụng bản port Rust
- Tốc độ khởi động trên Linux được cải thiện 10%
- Ngoài ra hầu như người dùng không nhận ra khác biệt, và Jarred Sumner đánh giá điều này là “Boring is good”
- Thông qua Claude Code, nó đã chạy production trên hàng triệu thiết bị
- Có thể tìm thấy phiên bản Bun nhúng từ các chuỗi trong tệp thực thi của Claude
strings ~/.local/bin/claude | grep -m1 'Bun v1'
- Trên môi trường macOS arm64, đầu ra là
Bun v1.4.0 (macOS arm64)
- Khi đó bản phát hành chính thức mới nhất trên GitHub là Bun v1.3.14 ngày 12/5, nên có thể xem Claude Code đã bao gồm bản xem trước v1.4.0 chưa phát hành chính thức
- Bản Rust đã được công bố dưới dạng Bun canary, và có thể cài bằng
bun upgrade --canary
Mã nguồn Rust và xác minh phiên bản
- Nếu trích xuất đường dẫn mã nguồn Rust từ tệp thực thi, có thể xác nhận 563 tên tệp
strings ~/.local/bin/claude | grep -Eo 'src/[[:alnum:]_./-]+\.rs'
- Danh sách có các đường dẫn sau
src/runtime/bake/dev_server/mod.rs
src/runtime/bake/production.rs
src/bundler/bundle_v2.rs
- Cách do Ajan Raj chia sẻ là preload một tệp TypeScript bằng
BUN_OPTIONS để in trực tiếp Bun.version được nhúng trong Claude Code
cat > /tmp/bun-version.ts <<'EOF'
console.log("embedded bun:", Bun.version);
process.exit(0);
EOF
BUN_OPTIONS="--preload=/tmp/bun-version.ts" claude --version
- Lệnh này cũng in ra
1.4.0
- Trong commit ngày 17/5, phiên bản
package.json đã được đổi thành 1.4.0 và giữ nguyên từ đó, nhưng vẫn chưa được đưa vào bản phát hành có tag nào ngoài canary
1 bình luận
Ý kiến trên Hacker News
Khó hiểu vì sao một TUI lại phải chạy qua JavaScript rồi React cho terminal. Việc Anthropic thậm chí mua lại cả runtime để cải thiện TUI càng khiến người ta nghi ngờ hơn về chất lượng kỹ thuật. Nếu việc viết lại dễ đến vậy thì chuyển Claude Code sang ngôn ngữ native hẳn sẽ rẻ hơn nhiều
Ngay cả việc viết lại Bun cũng không hề dễ, và một công cụ phát triển không phải UI với hợp đồng API và test rõ ràng sẽ dễ đáng tin hơn sau khi viết lại so với công cụ UI có tính năng mơ hồ và thiếu test
Phần code hướng người dùng và tầng UX thay đổi nhanh có khả năng sẽ chuyển sang các hệ thống động cho phép lặp phát triển nhanh, còn tầng hạ tầng thì sẽ chuyển sang môi trường hệ thống an toàn như Rust. Java/C# nằm ở vùng trung gian, nhưng về sau có vẻ TypeScript/Python là đủ cho UX còn Rust phù hợp hơn cho công việc hệ thống, nên vị thế của chúng có thể sẽ thu hẹp
https://avi.press/posts/2026-07-10-after-7-years-in-producti...
https://github.com/openai/codex/discussions/1174
Đọc nguyên văn của Jarred thì có vẻ rất rõ rằng lý do chuyển đổi là những phần trước đây phải làm thủ công trong Zig nay được tự động hóa trong Rust. Cả con người lẫn agent đều không mang tính quyết định, nên nếu phải theo dõi thủ công vòng đời bộ nhớ và giải phóng tường minh trong Zig thì lỗi bỏ sót sẽ tích tụ rất lâu, còn Rust loại bỏ được lớp lỗi này nên là một sự đánh đổi tốt hơn về mặt quản trị kỹ thuật
Đặc biệt, lỗi biên dịch từ compiler là rào chắn an toàn mang tính quyết định cần thiết cho coding agent, và khi giao cho Claude một cách kiểm tra tính đúng đắn cùng mục tiêu “hãy làm cho nó biên dịch được” thì nó hoạt động khá tốt. Cách tiếp cận tổng quát là biến đầu ra xác suất thành bảo đảm chắc chắn bằng các bài kiểm tra mang tính quyết định đã được tóm tắt tại https://michael.roth.rocks/blog/verification-surface/
Làm vậy thì Zig cũng có thể vững chắc không kém Rust, nhưng nếu muốn kiểu cấp phát theo phong cách ngôn ngữ managed mà LLM ưa thích thì Zig không phải lựa chọn phù hợp
unsafeRust, nên khó nói rằng nó tự động loại bỏ được cả một lớp lỗi: https://news.ycombinator.com/item?id=48967630unsafe, nên rất có thể nó không tự động loại bỏ được vấn đề đóBất kể đánh giá của Jarred hay Simon Willison ra sao, tôi nhìn việc này khá tiêu cực. Vấn đề lớn hơn cả chuyện Anthropic mua Bun hay AI viết lại là cách làm thiếu chín chắn, bắt đầu từ thái độ “đó chỉ là branch của tôi thôi, các anh đang phản ứng quá mức” rồi hợp nhất một PR hơn 1 triệu dòng trong chưa đầy một tháng
Họ giao tiếp cực kỳ tệ, làm xói mòn niềm tin và khoét sâu chia rẽ, và thật khó hiểu vì sao lại khó đến thế trong việc làm theo cách tiếp cận mà đội TypeScript đã áp dụng với 7.0
Bun v1.4.0 đi kèm Claude có vẻ là một bản preview chưa được phát hành công khai. Nếu vậy thì có cảm giác dự án FOSS Bun đã âm thầm biến thành một thứ khác, nên thật may là tôi chỉ để việc điều tra vào TODO rồi không triển khai
Tôi không tìm thấy tài liệu quản trị của Bun, nên tự hỏi liệu giờ đây trên thực tế Anthropic có phải là bên quyết định cả công việc lẫn việc merge hay không
Không rõ vì sao họ lại xử lý lòng vòng quanh Bun như vậy. Nếu agent có thể chuyển Zig sang Rust, thì Claude Code cũng có thể được viết lại trực tiếp bằng Rust từ JavaScript để loại bỏ phụ thuộc runtime và tăng hiệu năng
Ngoài Claude Code, Bun có lẽ còn có người dùng bên ngoài lẫn người dùng nội bộ tại Anthropic, đồng thời giúp họ nắm được một runtime JavaScript và hệ sinh thái công cụ mà các mô hình lập trình có thể ưa thích. Về sau Anthropic thậm chí có thể cung cấp cloud chuyên cho việc chạy và quản lý các ứng dụng kiểu này, và chỉ cần giành được cộng đồng nhà phát triển thôi cũng sẽ tạo ảnh hưởng lớn hơn nhiều so với việc chuyển riêng Claude Code sang Rust
Nếu bỏ qua suy đoán và cảm tính thì điều đáng tò mò là chất lượng vận hành thực tế. Không chỉ tốc độ khởi động mà còn phải kiểm tra mức dùng RAM·CPU, có vòng lặp vô hạn hay deadlock hay không; nếu vẫn như trước hoặc tốt hơn thì khá ấn tượng
Với tư cách lập trình viên, tôi không thích khả năng AI cướp việc làm, nhưng nếu ai cũng có thể tạo ra phần mềm mình muốn chỉ bằng những yêu cầu đơn giản thì thế giới có thể tốt hơn. Nếu ghét việc Microsoft thu thập dữ liệu thì có thể nhờ AI làm hệ điều hành, nếu ghét Google nghe lén thì có thể nhờ AI làm điện thoại, tức có thể đạt tới tự chủ công nghệ; trước viễn cảnh đó thì sự ổn định việc làm của cá nhân trở nên nhỏ nhặt
Vì vậy việc giữ công nghệ ở dạng mã nguồn mở lại càng quan trọng hơn, nếu không thì ta chỉ lặp lại cấu trúc độc quyền cũ trong khi còn mất cả việc làm
Gần đây khi dùng Claude Code trong một tab Kitty, tôi gặp lỗi segmentation fault, sau đó cả tab không còn phản hồi với đầu vào nữa. Có hiện ra liên kết báo lỗi nhưng không thể bấm được, lại còn bị mã hóa nên cũng không biết đang gửi thông tin gì
Segmentation faultthì nhiều khả năng không phải segmentation fault mà là bị treo. Nếu là lỗi thật thì sau khi quay về shell, dù không nhìn thấy trên màn hình, vẫn có thể gõresetđể khôi phục tabunsafeRust thì phần mã gây ra lỗi cũng vẫn còn nguyên. Sẽ không được giải quyết cho tới khi refactor sang Rust theo lối chuẩn và an toàn bộ nhớHọ trông giống như những kỹ sư thành công lớn nhưng tệ hại, rất giỏi mô tả vấn đề và có ngân sách token vô hạn. Nếu phải tự trả chi phí token thì hẳn đã có động lực tài chính để làm phần mềm hiệu quả hơn
Thực tế bị che giấu của các trung tâm dữ liệu AI là ngay cả khi hiệu suất cụm GPU chỉ 40~60% thì họ cũng chỉ lấy tiền mua thêm thiết bị để bù vào. Lý do họ sợ đối thủ Trung Quốc có thể là vì họ không đủ dư dả để lãng phí như đối thủ
Lần này là một bản transpile, và chất lượng cũng không tốt. Mã được sinh ra rất xa với Rust theo lối chuẩn, đến mức có thể xem là xấu xí
Thông thường khi viết lại, người ta phản ánh các bài học rút ra từ codebase cũ, nhưng nếu dùng agent để chuyển từng file thì không có lợi ích đó. Dù theo cách nào cũng sẽ thành một bản dịch không theo lối chuẩn, nhưng dùng LLM còn bổ sung thêm tính không xác định và chi phí khổng lồ
Gần đây Claude Code bất ổn hơn nhiều so với trước, và lỗi render TUI thường xuyên làm hỏng lịch sử hội thoại
Gửi nó xuống background, chạy
reset, rồi đưa lại foreground thì sẽ sửa được. Khi nhờ Claude chẩn đoán, nó nói bản thân không có lỗi đó và là do chương trình khác, nhưng lúc ấy chỉ chạy tmux và Claude. Nếu gần đây họ áp dụng bản Rust thì thời điểm chất lượng giảm sút cũng khá trùng khớp