- Claude Code v2.1.181 से Rust में पोर्ट किया गया Bun बिल्ट-इन है, जिससे Linux startup speed 10% तेज हुई है, लेकिन ज़्यादातर users को बदलाव लगभग महसूस नहीं होता
- executable की strings की जांच करने पर Bun v1.4.0 और Rust source file paths दिखते हैं, जिसके लिए अभी official tag नहीं है
~/.local/bin/claude में src/runtime/bake/dev_server/mod.rs आदि सहित 563 .rs filenames मिले
BUN_OPTIONS के जरिए TypeScript file को preload करके Bun.version print करने के तरीके से भी embedded version 1.4.0 होने की पुष्टि की जा सकती है
- Rust version Bun canary के रूप में distribute किया गया था, और Claude Code के जरिए पहले ही लाखों devices पर production में चल रहा है
Claude Code में embedded Rust-based Bun
- Rewriting Bun in Rust के मुताबिक, 17 जून को release हुए Claude Code v2.1.181 से Rust port का उपयोग किया जा रहा है
- Linux startup speed 10% बेहतर हुई
- इसके अलावा users को अंतर लगभग महसूस नहीं हुआ, और Jarred Sumner ने इसे “Boring is good” कहा
- Claude Code के जरिए यह पहले ही लाखों devices पर production में चल रहा है
- Claude executable की strings में embedded Bun version ढूंढा जा सकता है
strings ~/.local/bin/claude | grep -m1 'Bun v1'
- macOS arm64 environment में
Bun v1.4.0 (macOS arm64) output होता है
- उस समय GitHub पर latest official release 12 मई का Bun v1.3.14 था, इसलिए Claude Code में अभी officially release न हुआ v1.4.0 preview शामिल माना जा सकता है
- Rust version Bun canary के रूप में public हुआ है, और
bun upgrade --canary से install किया जा सकता है
Rust source और version verification
- executable से Rust source paths निकालने पर 563 filenames दिखते हैं
strings ~/.local/bin/claude | grep -Eo 'src/[[:alnum:]_./-]+\.rs'
- list में ये paths शामिल हैं
src/runtime/bake/dev_server/mod.rs
src/runtime/bake/production.rs
src/bundler/bundle_v2.rs
- Ajan Raj द्वारा share की गई method
BUN_OPTIONS से TypeScript file को preload करके Claude Code में embedded Bun.version को सीधे print करती है
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
- इस command में भी
1.4.0 output होता है
- 17 मई के commit में
package.json version 1.4.0 में बदले जाने के बाद से वैसा ही रखा गया है, और अभी canary के अलावा किसी tagged release में शामिल नहीं है
1 टिप्पणियां
Hacker News की राय
यह समझना मुश्किल है कि TUI को JavaScript से होकर टर्मिनल के लिए React पर क्यों चलना चाहिए। Anthropic ने TUI सुधारने के लिए runtime तक acquire कर लिया, यह बात engineering quality पर और संदेह पैदा करती है। अगर rewrite इतना आसान था, तो Claude Code को native language में ले जाना कहीं सस्ता पड़ता
rewrite Bun के लिए भी आसान नहीं है, और API contracts व tests साफ़ हों तो non-UI development tool को rewrite के बाद भरोसेमंद मानना, अस्पष्ट functionality और कम tests वाले UI tool की तुलना में आसान होता है
User-facing code और तेजी से बदलती UX layer शायद fast iterative development वाली dynamic systems में जाएंगी, और infrastructure layer Rust जैसे safe systems environment में जाएगी। Java/C# बीच का रास्ता हैं, लेकिन आगे चलकर UX के लिए TypeScript/Python काफ़ी होंगे और systems work के लिए Rust ज़्यादा उपयुक्त होगा, इसलिए उनकी जगह घटती दिखती है
https://avi.press/posts/2026-07-10-after-7-years-in-producti...
https://github.com/openai/codex/discussions/1174
Jarred की मूल पोस्ट देखें तो switch की वजह साफ़ लगती है: Zig में जो हिस्से manual थे, Rust में वे automated हो जाते हैं। इंसान और agent दोनों non-deterministic हैं, इसलिए Zig में memory lifetime और explicit deallocation को manually track करने पर missed bugs लंबी कतार में जमा होते जाते हैं, लेकिन Rust इस error class को हटा देता है और engineering management के लिहाज़ से अच्छा trade-off बनता है
खासकर compiler errors coding agents के लिए ज़रूरी deterministic safety net हैं, और Claude को accuracy test करने का तरीका और “इसे compile कराओ” लक्ष्य देने पर यह अच्छी तरह काम करता है। Deterministic tests से probabilistic output को ठोस guarantee में बदलने का generalized approach https://michael.roth.rocks/blog/verification-surface/ में लिखा है
ऐसा करने पर Zig भी Rust जितना robust हो सकता है, लेकिन अगर आप managed language जैसा allocation pattern चाहते हैं जिसे LLM पसंद करते हैं, तो Zig फिट नहीं बैठता
unsafeRust बहुत ज़्यादा है, फिर भी क्या कहा जा सकता है कि वह error class automatically हटा देता है? इस पर संदेह है: https://news.ycombinator.com/item?id=48967630unsafeथा, इसलिए संभव है कि वह समस्या automatically eliminate न कर पाएJarred या Simon Willison के assessment से अलग, मैं इस घटना को काफ़ी negative मानता हूं। Anthropic द्वारा Bun acquisition या AI rewrite से भी बड़ी समस्या वह immature process है जिसमें “यह सिर्फ़ मेरी branch है और लोग overreact कर रहे हैं” वाले रवैये से शुरुआत कर 10 लाख से ज़्यादा lines का PR एक महीने से भी कम समय में merge कर दिया गया
Communication बेहद खराब रहा, trust को नुकसान हुआ और विभाजन बढ़ा; समझ नहीं आता कि TypeScript team ने 7.0 में जो approach लिया था, उसे follow करना इतना मुश्किल क्यों था
Claude में शामिल Bun v1.4.0 अभी public नहीं हुआ preview version लगता है। अगर ऐसा है, तो लगता है FOSS project Bun चुपचाप किसी और चीज़ में बदल गया है; अच्छा हुआ कि मैंने investigation को सिर्फ़ TODO में रखा और adopt नहीं किया
Bun का governance document नहीं मिल रहा; अब क्या यह effectively ऐसा structure है जहां Anthropic ही काम और merge होना है या नहीं, दोनों decide करता है?
समझ नहीं आता कि Bun को लेकर इतना घुमा-फिराकर जटिल तरीके से क्यों निपटा गया। अगर agent Zig को Rust में ले जा सकता है, तो Claude Code को भी JavaScript से सीधे Rust में rewrite करके runtime dependency हटाई जा सकती थी और performance बढ़ाई जा सकती थी
Bun के Claude Code के अलावा बाहरी और Anthropic के internal users भी होंगे, और इससे JavaScript runtime व tools ecosystem मिलता है जिसे coding models पसंद कर सकते हैं। आगे चलकर Anthropic ऐसे apps को run और manage करने में specialized cloud तक दे सकता है, और सिर्फ developer community हासिल कर लेना भी Claude Code को Rust में ले जाने से कहीं बड़ा प्रभाव दे सकता है
अटकल और भावनाएं हटाकर देखें तो असल execution quality जानने की उत्सुकता है। सिर्फ startup speed नहीं, RAM और CPU usage, infinite loops या deadlocks कैसे हैं यह देखना होगा; अगर यह पहले जैसा या बेहतर है तो यह काफी प्रभावशाली है
developer के तौर पर AI के jobs ले जाने की संभावना पसंद नहीं है, लेकिन अगर कोई भी simple requirements से अपनी मनचाही software बना सके, तो दुनिया बेहतर हो सकती है। Microsoft का data collection पसंद नहीं तो operating system, Google की eavesdropping पसंद नहीं तो mobile phone AI से बनवाने जैसी technical self-sufficiency संभव हो सकती है, और उसके सामने व्यक्ति की job security मामूली हो जाती है
इसलिए technology को open source बनाए रखना और भी जरूरी है; वरना पुराने monopoly structure दोहरेंगे और jobs भी चली जाएंगी
हाल में Kitty tab के अंदर Claude Code इस्तेमाल करते हुए segmentation fault हुआ, और उसके बाद पूरा tab input पर respond करना बंद कर गया। report link दिखता है, लेकिन click नहीं किया जा सकता और encoded है, इसलिए यह भी नहीं देख सकता कि कौन-सी जानकारी भेजी जा रही है
Segmentation faultprint नहीं हुआ, तो यह segmentation fault नहीं बल्कि hang होने की संभावना ज्यादा है। अगर सच में fault हुआ हो, तो shell में लौटने के बाद screen पर दिखाई न दे तब भीresettype करके tab recover किया जा सकता हैunsafeRust में line-by-line ले जाया गया है, तो कारण बनने वाला code भी वैसे ही बचा रहेगा। idiomatic और memory-safe Rust में refactor करने से पहले यह हल नहीं होगाये लोग समस्या को अच्छी तरह describe करने वाले, unlimited token budget रखने वाले, बहुत सफल लेकिन खराब engineers जैसे लगते हैं। अगर token cost खुद चुकानी पड़ती, तो software efficiency बढ़ाने की financial motivation बनती
AI datacenters की छिपी reality यह है कि GPU cluster efficiency सिर्फ 40–60% होने पर भी funding से और hardware खरीदकर कमी पूरी कर दी जाती है। Chinese competitors से डरने की वजह भी यह हो सकती है कि उनके पास इस तरह waste करने की गुंजाइश नहीं है
यह काम transpile है और quality भी अच्छी नहीं है। generated code idiomatic Rust से बहुत दूर है, इतना कि उसे बदसूरत कहा जा सकता है
आम तौर पर rewrite में मौजूदा codebase से मिली सीखों को शामिल किया जाता है, लेकिन agent से file-by-file port कराने पर वह फायदा नहीं मिलता। किसी भी तरह non-idiomatic translation होगी, लेकिन LLM इस्तेमाल करने पर nondeterminism और भारी cost भी जुड़ जाती है
हाल में Claude Code पहले से कहीं ज्यादा unstable है, और TUI rendering errors की वजह से conversation history अक्सर टूट जाती है
इसे background में भेजकर
resetचलाने और फिर foreground में वापस लाने पर ठीक हो जाता है। Claude से diagnosis मांगी तो उसने कहा कि उसमें ऐसे bugs नहीं हैं और किसी दूसरे program की गलती है, जबकि सिर्फ tmux और Claude चल रहे थे। अगर हालिया Rust version लगाया गया है, तो quality degradation का timing लगभग match करता है