1 पॉइंट द्वारा GN⁺ 2025-01-25 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Bun 1.2 अपडेट

  • Bun 1.2 में Node.js compatibility को काफी बेहतर किया गया है और इसमें S3 object storage API तथा Postgres client built-in दिए गए हैं। bun install अब text-based bun.lock का उपयोग करता है। Express की performance 3 गुना बेहतर की गई है।

Node.js compatibility

  • Bun को Node.js के विकल्प के रूप में डिज़ाइन किया गया है, और Node.js test suite चलाकर compatibility बेहतर की गई है।
  • internal API और error message के अंतर को हल करके यह Node.js modules के 90% से अधिक tests पास करता है।

HTTP/2 server और अन्य modules

  • node:http2 का उपयोग करके HTTP/2 server बनाया जा सकता है, और यह gRPC server के लिए भी आवश्यक है।
  • node:dgram का उपयोग करके UDP socket को bind और connect किया जा सकता है।
  • node:cluster का उपयोग करके कई Bun instances बनाकर काम को parallel में प्रोसेस किया जा सकता है।
  • node:zlib module को native code में फिर से लिखा गया है, जिससे performance 2 गुना बेहतर हुई है।

S3 support

  • Bun 1.2 में built-in S3 API है, जिससे files को read, write और delete किया जा सकता है।
  • Bun का S3 client native code में लिखा गया है और Node.js से 5 गुना तेज़ है।

Postgres support

  • Bun.sql का उपयोग करके SQL queries चलाई जा सकती हैं, और यह SQL injection को रोकता है।
  • Bun.sql अन्य Postgres clients की तुलना में 50% तेज़ है।

package manager

  • bun install अब text-based bun.lock का उपयोग करता है, जिससे यह अधिक तेज़ है और merge conflicts कम होते हैं।
  • package.json में comments और trailing commas का उपयोग किया जा सकता है।
  • .npmrc file को पढ़कर npm registry configure की जा सकती है।

test runner

  • Bun built-in test runner देता है, जिससे tests लिखना और चलाना आसान हो जाता है।

1 टिप्पणियां

 
GN⁺ 2025-01-25
Hacker News की राय
  • कुछ उपयोगकर्ताओं ने external library को core library में शामिल करने पर सवाल उठाया और माना कि उन्हें optional library के रूप में रखना बेहतर होगा

    • runtime को standard library में चीज़ें शामिल करते समय बहुत सावधान रहना चाहिए, और जो चीज़ें पहले से शामिल हैं वे भी project को जटिल बना सकती हैं
  • कुछ लोगों का कहना है कि Bun इस्तेमाल करने का अनुभव बहुत अच्छा रहा

    • TypeScript, Jest, React, Webpack की settings झंझटभरी थीं, लेकिन Bun सरल और प्रभावी है
    • external library integration पर वे कुछ नहीं कह सकते, लेकिन आम तौर पर Bun उन चीज़ों पर ध्यान दे रहा है जिनकी सबसे ज़्यादा मांग है
  • एक राय यह है कि default behavior बहुत ज़्यादा magical है

    • उदाहरण के लिए, S3 file डाउनलोड किए बिना user को presigned URL देना एक चौंकाने वाला चुनाव है
    • इस behavior को disable करने का तरीका स्पष्ट नहीं है
  • एक राय यह है कि built-in features बड़ा फर्क पैदा करते हैं

    • उन्हें यह पसंद है कि Web API, V8 और Webkit runtime में default रूप से शामिल हैं
    • लेकिन S3 शायद कुछ ज़्यादा आगे की चीज़ हो सकती है; SQL driver समझ में आते हैं, लेकिन कहाँ तक शामिल करना चाहिए इस पर विचार ज़रूरी है
    • sensitive API जोड़ने से संभव है कि security issues छूट रहे हों
  • एक राय के मुताबिक एक client production में Bun इस्तेमाल कर रहा है, और developer experience बहुत अच्छा है

    • developer experience लंबे समय में बड़ी भूमिका निभा सकता है
    • अगर codebase या process अच्छे न हों, तो अच्छे talent को खोया जा सकता है
  • एक राय यह है कि Bun की feature list इतनी लंबी है कि यह संदेह होता है कि क्या सब कुछ मजबूत और bug-free होगा

    • project management के नज़रिए से S3 support पर समय खर्च करना समझ में नहीं आता
    • Next.js ग्राहकों को हासिल करना विकास का बेहतर तरीका हो सकता है
  • Bun 1.2 में HTML import support जोड़ा गया है

    • एक single import statement से पूरे frontend toolchain को replace किया जा सकता है
    • कुछ लोगों के अनुसार यह बेहद चौंकाने वाली और शानदार feature है
  • एक राय यह है कि Bun को पहली बार इस्तेमाल करना बेहद चौंकाने वाला अनुभव था

    • Webpack या Vite configuration झंझटभरी थी, लेकिन Bun तुरंत काम करने लगा
    • छोटे script के लिए configuration करना उचित नहीं लगता था, लेकिन Bun ने शानदार ढंग से काम किया
  • एक राय यह है कि पहले लगा था कि यह Node.js के alternative के रूप में असफल होगा, लेकिन Bun इस्तेमाल करने के बाद अनुभव संतोषजनक रहा

    • TypeScript और SQLite DB update संभालने वाले standalone script आसानी से बनाए जा सके
    • नए JS/TypeScript project में भी इसे आज़माया गया और सब कुछ तेज़ी से काम किया
  • एक राय यह है कि quality assurance process औपचारिक भर लगती है

    • ऐसा लगता है कि build pass न होने की स्थिति में भी changes merge करके release कर दिए गए
    • अगर tests अस्थिर हों, तो regression को track करना मुश्किल होगा