6 पॉइंट द्वारा GN⁺ 2024-04-02 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Windows सपोर्ट

  • Windows 10 और उसके बाद के संस्करणों पर Bun चलाया जा सकता है
  • macOS और Linux पर Bun टेस्ट suite का 98% पास
  • बिल्ट-इन npm-compatible package manager शामिल है, जिससे Vite React app इंस्टॉल करते समय यह yarn से 18 गुना और npm से 30 गुना तेज है
  • .bunx फ़ाइल फ़ॉर्मैट के साथ Windows पर तेज script execution सपोर्ट
  • Windows पर सबसे तेज system calls का उपयोग करके Node.js API को optimize किया गया
    • उदाहरण: fs.readdir() Node.js से 58% तेज

Bun एक JavaScript runtime है

  • JavaScript, TypeScript, JSX सपोर्ट
  • tsc जैसे command-line tools, Bun 1.0 की तुलना में अधिकतम 2 गुना तेज
  • Bun Shell अब Windows पर भी उपलब्ध cross-platform shell बन गया है
    • ls, rm, cat जैसी core utilities शामिल
    • JavaScript और TypeScript में Bun.$ API का उपयोग करके shell चलाया जा सकता है
  • Bun.Glob
    • file और string matching के लिए बिल्ट-इन Glob API उपलब्ध
    • fast-glob और micromatch जैसा, लेकिन string matching में 3 गुना तेज
  • Bun.Semver
  • semver strings को parse और sort करने के लिए नया Semver API
    • node-semver package जैसा, लेकिन 20 गुना तेज
  • Bun.stringWidth()
    • terminal में string की visible width मापने के लिए नया API
    • ANSI escape codes, full-width characters, graphemes, emoji सपोर्ट
  • server.url: Bun.serve() का उपयोग करके बनाए गए HTTP server का URL server.url property से प्राप्त किया जा सकता है
  • server.requestIP(): HTTP request का IP address server.requestIP() method से प्राप्त किया जा सकता है
  • subprocess.resourceUsage(): Bun.spawn() से बनाए गए child process के CPU और memory usage को resourceUsage() method से access किया जा सकता है
  • Node.js compatibility में सुधार
    • node:http2 client API, Date.parse() compatibility, recursive fs.readdir() सपोर्ट आदि सहित कई API improvements
    • Bun और Node.js के बीच IPC संभव
    • कुछ undocumented Node.js APIs भी सपोर्ट
  • Web API: WebSocket, performance.mark(), Brotli compression के साथ fetch(), URL.canParse() जैसी Web standard APIs का सपोर्ट

Bun एक npm-compatible package manager है

  • bun install का उपयोग करके npm packages को अधिकतम 29 गुना तेज इंस्टॉल किया जा सकता है
  • lifecycle scripts, trustedDependencies, bun pm trust जैसी सुविधाओं में सुधार

Bun एक JavaScript bundler है

  • bun build --target=node का उपयोग करके Node.js पर चलने योग्य code bundling सपोर्ट
  • --compile flag का उपयोग करके TypeScript और JavaScript फ़ाइलों को single-file executable में compile किया जा सकता है

Bun एक test runner है

  • Jest के समान API सपोर्ट करने वाला बिल्ट-इन test module उपलब्ध
  • नए expect() matchers जोड़े गए और module mocking सपोर्ट

SQLite सपोर्ट बिल्ट-इन

  • better-sqlite3 से प्रेरित API के साथ SQLite सपोर्ट
  • multi-statement queries, विस्तृत error messages, database import और बिल्ट-इन सपोर्ट में सुधार

GN⁺ की राय

  • Bun, Node.js के साथ compatibility बनाए रखते हुए performance को काफी बढ़ाने वाला JavaScript toolkit है, और Windows सपोर्ट के जरिए यह व्यापक developer community तक पहुंच सकता है।
  • बिल्ट-इन test runner और SQLite सपोर्ट डेवलपर्स को अतिरिक्त tools के बिना अधिक कुशलता से काम करने में मदद करते हैं।
  • Bun की तेज performance और बेहतर developer experience खासकर बड़े projects या performance-sensitive applications में अधिक स्पष्ट हो सकती है।
  • Bun द्वारा दी गई कई सुविधाओं और improvements के बावजूद, Node.js ecosystem के व्यापक packages के साथ पूरी compatibility हासिल करने के लिए लगातार development और community feedback की आवश्यकता है।
  • Bun की नई सुविधाएँ मौजूदा Node.js-आधारित tools के साथ कैसे प्रतिस्पर्धा करेंगी या सहयोग करेंगी, इस पर और विश्लेषण की आवश्यकता है।

1 टिप्पणियां

 
GN⁺ 2024-04-02
Hacker News राय
  • Bun में प्रभावशाली बदलावों की सूची

    • Bun, Node.js का एक आदर्श विकल्प लगता है, और Windows सपोर्ट पर समय देना वेब डेवलपमेंट की दुनिया में अक्सर नज़रअंदाज़ किया जाने वाला हिस्सा है।
    • "Bun on Windows passes 98% of our own test suite for Bun on macOS and Linux." इस बात पर सवाल है कि क्या इसका मतलब यह है कि Windows वर्ज़न असफल टेस्टों के साथ रिलीज़ किया गया, या फिर यह केवल एक गलतफ़हमी है।
  • Bun की macro सुविधा

    • यह पता चला कि Bun में एक बुनियादी macro फीचर है जो bundle समय पर कोड चलाता है। यह काफ़ी दिलचस्प फीचर है।
  • Bun और Deno इस्तेमाल करने के कारण पर सवाल

    • यह समझ में आता है कि Bun और Deno के लिए Node.js compatibility ज़रूरी है, लेकिन VC funding होने पर भी प्रोडक्ट की long-term sustainability को लेकर सवाल है।
    • यह स्पष्ट नहीं है कि Bun और Deno को क्यों इस्तेमाल किया जाए, जबकि वे Node.js जैसे (कुछ हद तक अपूर्ण) ecosystem का ही हिस्सा हैं।
  • Bun के बड़े प्रशंसक

    • TypeScript compatibility की वजह से पहली बार Bun का इस्तेमाल किया, और performance की वजह से इसका इस्तेमाल जारी रखा।
    • Deno को आज़माया, लेकिन उसका इस्तेमाल मुश्किल लगा; इसके विपरीत Bun को integrate करना आसान था और अनुभव बहुत सुखद रहा।
  • Bun की नई रिलीज़ पर प्रतिक्रिया

    • Bun का वीडियो देखा, लेकिन चार्ट स्पष्ट नहीं थे, इसलिए यह समझ नहीं आया कि तुलना पहले के Bun वर्ज़न से हो रही थी या Node.js से।
    • साइड प्रोजेक्ट्स में Bun का इस्तेमाल करने का अनुभव अच्छा रहा, और built-in API अच्छी तरह काम करते हैं। उम्मीद है कि Deno और Node.js भी इन API में से कुछ को अपनाएँगे।
    • Bun डिफ़ॉल्ट रूप से कुछ telemetry इकट्ठा करता है। इंस्टॉलेशन स्क्रिप्ट में इसका ज़िक्र नहीं है, केवल Bunfile दस्तावेज़ में इसका उल्लेख है।
    • उम्मीद है कि इंस्टॉलेशन के दौरान users को telemetry बंद करने के निर्देश मिलें, और इसे opt-in बनाया जाए।
    • Bun एक विकल्प देता है जिसमें प्रोजेक्ट के .js entrypoint और runtime को bundle करके dependencies के बिना executable बनाया जा सकता है। यह तब उपयोगी है जब users को एक single binary वितरित करनी हो, लेकिन अभी फ़ाइल का आकार काफ़ी बड़ा है (GNU/Linux पर छोटे प्रोजेक्ट के लिए भी 90MB से अधिक)।
    • सवाल है कि क्या Bun कुछ फीचर्स को disable करके छोटे binary बनाने का विकल्प देगा।
    • Bun को Haxe target के रूप में आज़माया जा रहा है, और अगर कोई TypeScript की बजाय Haxe पसंद करता है या मौजूदा Haxe प्रोजेक्ट में वेब सर्वर जोड़ना चाहता है, तो यह विचार करने लायक विकल्प है।
  • Bun टीम से अनुरोध

    • एक स्पष्ट support policy/lifecycle timeline देने का अनुरोध है। वर्ज़न और मॉड्यूल्स के बीच stability guarantees पर स्पष्टता भी महत्वपूर्ण है।
  • Bun डेवलपर की भागीदारी

    • Bun के एक डेवलपर ने बताया कि वह सवालों के जवाब देने के लिए तैयार है। उन्होंने यह भी कहा कि Bun v1.1 अभी compile हो रहा है और पूरा होने में लगभग 20 मिनट और लगेंगे।
  • Bun की स्थिरता पर सवाल

    • Bun को कई प्रोजेक्ट्स में तीन बार आज़माया गया, लेकिन runtime या package installation के दौरान segmentation fault का अनुभव हुआ।
  • Bun का revenue model और VC funding

    • सवाल है कि Bun का revenue model क्या है, और VC funding ख़त्म होने पर क्या होगा।