آیا Bun.sh میتواند جایگزین Node.js و Deno شود؟

آیا از Bun یا Node js یا Deno استفاده کنم!؟ سکان آکادمی

Bun به عنوان نوعی جایگزین همه‌کاره برای ابزارهای توسعه و زمان اجرا مختلف، از جمله npm، npx، yarn، کامپایلرهای TypeScript، dotenv، nodemon، pm2، Webpack، Babel و Jest قرار گرفته است. حلقه رویداد یا event loop  به شما این امکان را می دهد که کل برنامه خود را در یک رشته واحد بدون مواجهه با هیچ مسدودی اجرا کنید. علاوه بر این، با معرفی Worker Threads، توسعه‌دهندگان اکنون می‌توانند زمان‌های اجرا مجزای جاوا اسکریپت را بچرخانند و پردازش‌های چند رشته‌ای و موازی را شبیه‌سازی کنند. محیط‌های ران‌تایم (Runtime) جاوا اسکریپت به شما اجازه می‌دهند پروژه‌های پیشرفته و متکی بر سرور را به‌گونه‌ای پیش ببرید که مستقل از مرورگر کاربران عمل کنند. در دنیای امروز ران‌تایم‌های زیادی برای انتخاب دارید و برجسته‌ترین گزینه، Node.js است که سلطنتی طولانی داشته، اما اخیرا از سوی Bun و همینطور Deno به چالش کشیده شده است.

سپس با استفاده از ماژول fs فایل را به صورت هم‌زمان می‌خواند، محتوا را با استفاده از js-yaml بارگیری کرده و داده‌های صادر شده را بازمی‌گراند. این قابلیت اجازه می‌دهد تا بدون دردسر نصب ابزارها یا کتابخانه‌های اضافی، انواع مختلف فایل‌ها را در Bun اجرا کنید. 3 | در حالی که Deno تجربه توسعه بهبودیافته‌ای را ارائه کرد، بسیاری از توسعه‌دهندگان js را برای نیازهای آن‌ها کافی دانستند. Bun به طور خودکار متغیرهای محیطی را از فایل‌های project.env بارگیری و تجزیه می‌کند و نیاز به بسته‌های خارجی مانند dotenv را از بین می‌برد. Bun را می‌توان ران‌تایمی متمرکز بر امنیت توصیف کرد که به صورت پیش‌فرض، دسترسی به فایل سیستم، شبکه و محیط توسعه را محدود می‌کند و بنابراین از پدید آمدن آسیب‌پذیری‌های امنیتی جلوگیری می‌شود. در مجموع با مقایسه Bun و Nodejs متوجه می‌شویم که Node.js بی‌خطرترین گزینه به حساب می‌آید که سابقه‌ای طولانی دارد.

در پروژه دنو(Deno) هنوز مواردی هست که می‌توانیم مورد بررسی قرارشان دهیم. یکی از این اتفاق‌های بزرگ، افزوده شدن ابزاری برای آزمایش اجرا، اشکال زدایی (debugger)، ناظر پرونده (file watcher) و … است. همچنین باید افزود که بعضی از این ابزار، فقط API‌هایی هستند که توسط زبان خود برنامه ارائه می‌شوند و برای استفاده از آنها باید خودتان ابزار را کدنویسی کنید. Bun به عنوان “یک زمان اجرای سریع جاوا اسکریپت همه در یک” تعریف می شود. این سومین مورد از نوع خود پس از Node.js و Deno.js است که توسط Jarred Sumner با استفاده از زبان برنامه نویسی Zig ایجاد شده است. Transpiler که در نهایت در تبدیل کدهای جاوا اسکریپتی به شما کمک می‌کند.

در صورتی که از مطالب این سایت استفاده کردید و تمایل به حمایت از این سایت داشتید میتونید از طریق ارز دیجیتال ترون به ما کمک کنید. در حالی که آینده قطعاً برای Bun امیدوارکننده است، منطقی است که باور کنیم این سه فناوری به احتمال زیاد در اکوسیستم وجود خواهند داشت، نه اینکه یکی جایگزین دیگری شود. Node هنوز به طور مرتب به روز می شود، نسخه 18.0 اخیراً منتشر شده است، بنابراین آینده آن حتی با Deno و Bun دست نخورده باقی می ماند. بسیاری از شرکت‌ها مانند PayPal از Node در زیرساخت‌های خود استفاده می‌کنند و حتی استارت‌آپ‌های جدید نیز از این روش پیروی می‌کنند. Node با یک جامعه بسیار بزرگ پایدارترین است، در حالی که Deno در حال حاضر امن ترین است. و برای حذف پکیجی که نصب کردیم میتونیم از bun remove lodash استفاده کنیم.

در Deno، استفاده از Rust در ساختار داخلی این زبان برنامه‌نویسی اهمیت زیادی دارد. با تقسیم ساختار هسته Deno به چهار بخش اصلی، استفاده از Rust در این ساختار به عنوان یکی از زبان‌های پیاده‌سازی بسیار حیاتی است. Deno مدیریت بسته ها را ندارد که باعث کاهش احتمال دانلود برنامه‌های مخرب می‌شود. Deno هم مانند دیگر تکنولوژی‌ها چیز واقعا متفاوتی نیست، اما هنوز در توسعه محصول ارزیابی نشده است. این پروژه هنوز مورد بررسی قرار نگرفته و مورد استفاده‌های عجیب و غریب قرار نگرفته است تا ببینند که چگونه با آن شرایط برخورد می‎کند. و تا زمان انجام این ارزیابی‌ها، فقط یک اسباب بازی برای پذیرندگان اولیه خواهد بود که با آن بازی کنند.

Bun می‌تواند در هر ثانیه به ۶۸ هزار درخواست رسیدگی کند و این رقم برای Deno و Node.js، به ترتیب ۲۹ هزار و ۱۴ هزار درخواست است. هدف‌ نهایی هرچه که باشد، ران‌تایم منتخب‌تان تاثیری شگرف روی عملکرد اپلیکیشن می‌گذارد. سرعت دسترسی به دیتابیس و رسیدگی به درخواست‌ها نیز می‌تواند کاملا متغیر باشد. علاوه بر این، سهولت توسعه و مقیاس‌پذیری پروژه هم مستقیما تحت تاثیر قرار می‌گیرند. ران‌تایم‌های جاوا اسکریپت به شما اجازه می‌دهند کد اپلیکیشن را خارج از مرورگر اجرا کنید.

Node.js از حمایت بنیاد OpenJS برخوردار است که کاملا بر کارهای داوطلبانه تمرکز دارد. Bun و Deno اما تحت حمایت سازمان‌های خصوصی هستند و با جذب سرمایه‌گذار به کار خود ادامه می‌دهند. در تمامی سناریوها و بنچمارک‌ها، Bun پیروز است و Node.js هم در اکثر مقایسه آخرین جایگاه را به دست می‌آورد. در مجموع باید گفت که Deno و Node.js عملکرد آنقدرها متفاوتی نسبت به یکدیگر ندارند و Bun از هر دو آن‌ها پیشی می‌گیرد. در این بخش از مقاله، نگاهی دقیق‌تر به تفاوت‌های میان دو ران‌تایم Bun و Node.js می‌اندازیم و بیشتر روی پرفورمنس، ثبات عملکرد، امنیت، پشتیبانی و جامعه کاربران تمرکز می‌کنیم.

همچنین دارای bux است، ابزاری شبیه به npx برای نصب خودکار و اجرای بسته‌ها در یک دستور. علاوه بر این، Deno همچنین استانداردهای فعلی وب را با ترکیب ابزارهای داخلی مانند واکشی برای شبکه، همسویی با نحوه مدیریت مرورگرها با جاوا اسکریپت و ارائه یک تجربه کدنویسی منسجمتر انجام می دهد. Node.js پرکاربردترین محیط ران تایم  جاوا اسکریپت برای توسعه سمت سرور است. هدف اصلی آن ارائه یک پلتفرم برای اجرای جاوا اسکریپت در خارج از مرورگر درست مانند Node.js و Deno.js است، اما Bun برای ارائه سطوح جدیدی از سرعت و پیچیدگی افزایش یافته پیشرفت می کند. این آمار در زمانی که از دیتابیس کوئری گرفته شده و با فریمورک React مشغول انجام Server-Rendering بوده‌اند دریافت شده است. دلیل اصلی این موضوع نیز وجود جایگزین بهتری برای موتور قدیمی V8 Chrome است.

بنابراین تمام کدهای TS باید به جاوااسکریپت ترجمه شوند تا بتوانند اجرا شوند. Js ماژول‌های امنیتی ای را ساپورت می کند که امکانات امنیتی اضافی را فراهم می‌کند. احتمالاً زمان آن فرا رسیده است که جاوا اسکریپت در زمینه‌های حیاتی عملکرد مانند AI/ML، توسعه بازی و غیره مورد استفاده قرار گیرد. قابل قبول است که هیاهوی تبلیغاتی پیرامون Bun از زمان اعلام این خبر بسیار زیاد بوده است. توسعه دهندگان جاوا اسکریپت با توجه به سرعت “شعله ور” و ابزار قوی برای بهره وری آن را واقعا دوست دارند.

یک نکته مهم برای برنامه‌های تولیدی این است که تمام وابستگی‌ها باید دارای نسخه باشند و از وابستگی‌های بدون نسخه استفاده نشود. این امر در مدیریت بسته‌ها بسیار حیاتی است تا از ابهامات و مشکلات ناشی از نسخه‌های نامناسب بسته‌ها جلوگیری شود. Node، Deno و Bun همگی زمان اجرا برای جاوا اسکریپت خارج از مرورگر هستند، این تفاوت بین آنها را خنثی نمی کند. آقای Jarred Sumner میگه که سرعت بالای Bun رو مدیون وقت زیادی که روی پروفایلینگ، بنچمارکینگ و بهینه سازی که گذاشتم بدونید. عوامل زیاد دیگه ای هم توی این پرفورمنس تاثیر داشن اما مهم ترین اون ها مدیریت دستی حافظه و hidden control flow توسط زبان Ziglang بوده. Bundler موجود در Bun به شما این اجازه را می‌دهد تا بتوانید چندین فایل جاوا اسکریپتی را در کنار همدیگر قرار داده و آن‌ها را با همدیگر ترکیب کنید.

این‌ها شامل عملکردهایی مانند fetch، Request، Response، URL، blob، WebSocket، JSON handling، setTimeout و ReadableStream می‌شود. Deno نیز این APIها را به زمان اجرا سرور خود معرفی کرد که منجر به سازگاری بیشتر در توسعه وب شد. Node.js نیز هم اکنون در حال پیشرفت بوده و ویژگی‌هایی مانند fetch اخیراً در نسخه 18 معرفی کرده است. جاوااسکریپت، از اولین نسخه‌های Node کتاب‌خانه استاندارد خود را بهبود بخشیده است، اما هنوز هم راه طولانی باید طی کند تا قابل مقایسه با دیگر زبان‌ها باشد. دنو همچنین سعی در بهبود آن داشته و ادعا می‌کند که یک کتابخانه استاندارد کامل دارد و به توسعه دهندگان این امکان را می‌دهد که از ابزارهای رسمی برای انجام کارهای اصلی استفاده کنند. اما در صورتی که نیاز به‌انجام کارهای پیچیده‌تر داشته باشند، به‌کمک NPM می‌توانند کتاب‌خانه خارجی را استفاده کنند.

برای مثال هنگام رسیدگی به پروژه‌های تیمی باید دید اعضا با کدام ران‌تایم آشنایی بیشتری دارند یا تمایل بیشتری به آن‌ نشان می‌دهند. این فایل از مستقیم import کردن بسته‌ها در کد جلوگیری می‌کند و به توسعه‌دهندگان اجازه می‌دهد تا به راحتی و با ساختار مناسب وابستگی‌های خود را مدیریت کنند. بسته‌های نرم‌افزاری یکی از مهمترین ابزارها برای توسعه‌دهندگان در زمینه برنامه‌نویسی است. Deno یک پلتفرم جدید برنامه‌نویسی است که قصد دارد تا راه‌حل‌هایی نوین برای مدیریت بسته‌ها ارائه دهد. از انعطاف بالایی برخوردار است که می‌تواند برای توسعه‌دهندگانی که به ساخت برنامه‌های تولیدی با Deno علاقه‌مند هستند، نگران‌کننده باشد.

علاوه بر این، سرور Bun’s Discord در حال حاضر بیش از 2000 عضو دارد که نشان دهنده هیجان در جامعه برای این فناوری جدید است. ما توی بنچمارک های زیر خیلی راحت میتونیم سرعت و پرفورمنس بالای Bun رو درک کنیم. یکی از شایع‌ترین چیزهایی که همه از اشکال‌های آن صحبت می‌کردند، مدیریت وابستگی‌ها بود. در Node جنجالی به‌پا شده بود و در دنو تصمیم گرفته شد که از این مشکل به‌کلی خلاص شوند. در این مقاله چند واقعیت جالب وجود دارد که ممکن است در تصمیم‌گیری شما، نقش داشته باشد.

Bun.js که در سال ۲۰۲۲ راه اندازی شد، به سرعت در حال تبدیل شدن به زمان اجرا جاوا اسکریپت جدید و همه کاره در سمت سرور است. سایر ویژگی‌های هیجان‌انگیز Bun شامل کلاینت SQLite3 داخلی، APIهای وب مانند fetch و WebSocket، بارگذاری خودکار متغیرهای محیطی و اجرای آزمایشی است. در ژوئیه 2022، زمان اجرا جدیدی در نسخه بتا ظاهر شد – “Bun.js” – که موضوعی پرطرفدار در داخل و خارج از جامعه جاوا اسکریپت بوده است. قابلیت همکاری با Node.js و عملکرد پرسرعتی که ادعا می‌کند ارائه می‌کند، نکته‌ای مهم بوده است. همچنین بحث هایی را مطرح کرده است که بالاخره یک «نابودگر گره» در اطراف وجود دارد. Deno یک فایل اجرایی است که با Rust ساخته شده است و هدف آن رفع تمام نقص های Node مانند امنیت، عملکرد و پشتیبانی از TypeScript بومی است.

توسعه‌دهندگان Bun توجهی ویژه به سرعت این ران‌تایم نشان‌داده‌اند و از موتور JavaScriptCore که در مرورگر Safari یافت می‌شود کمک گرفته‌اند. از سوی دیگر اما Deno و Node.js از موتور V8 مرورگر کروم استفاده می‌کنند. ناگفته نماند که سازندگان Bun با حذف کد مرده از باینری‌های کامپایل‌ شده، آن را بیش از پیش بهبود داده‌اند. در Deno، تایپ اسکریپت (همراه با TSX و JSX) به جاوااسکریپت تبدیل می‌شود و در یک حافظه نهان ذخیره می‌شود تا برای اجرای بعدی نیاز به تبدیل آن به جاوااسکریپت دوباره نباشد. بخش Core در Deno مسئول ارائه مجموعه کوچکی از خدمات اصلی مانند پیوندهای V8، OPS dispatch و بارگذاری افزونه‌ها است. از آنجا که Rust یک زبان برنامه‌نویسی قدرتمند و ایمن است، استفاده از آن در این بخش می‌تواند باعث افزایش امنیت و کارایی سیستم شود.

از طرف دیگر ممکن است بخواهید از این ران‌تایم‌ها برای اسکریپت‌نویسی عمومی استفاده کنید. بخش Runtime شامل تمامی API‌های جاوااسکریپتی Deno و پیاده‌سازی‌های سطح پایین آن‌ها (ops) است. استفاده از Rust در این بخش می‌تواند بهبود قابلیت‌های سیستمی Deno را فراهم کند و از امکانات ایمنی و کارایی Rust بهره برد. بنابراین، Deno امکان اجرای TypeScript را فراهم کرده است اما توجه داشته باشید که برای استفاده از TypeScript باید کدها به جاوااسکریپت ترجمه شوند تا بتوانند در Deno اجرا شوند. برخی از ما استفاده از Node.js را از روزی که حدود نسخه 0.10 بود شروع کردیم و بیشتر برنامه‌ها را با آن توسعه دادیم!

با گسترش استفاده از زبان‌های برنامه‌نویسی JavaScript و TypeScript، Deno به عنوان یک روند جدید و نوآورانه مورد توجه قرار گرفته است. این روند مبتنی بر موتور JavaScript V8 و زبان برنامه‌نویسی Rust بوده و قادر است تا به عنوان بهترین و مناسب ترین جایگزین مدرن و بهبود یافته برای Node. Deno با ویژگی‌هایی همچون پشتیبانی از TypeScript به صورت پیش‌فرض، نصب آسان و محیط کتابخانه مدرن، توانسته است توجه بسیاری از توسعه‌دهندگان را به خود جلب کند. از نظر امنیتی نیز، Deno با ارائه یک لایه امنیتی محیطی و مدیریت دقیق دسترسی‌ها، امکان اجرای برنامه‌های امن‌تر را فراهم می‌کند. قبل از اینکه در رابطه با اینکه Bun js چیست و تاریخچه آن حرف بزنیم، مروری بر نود جی اس (Node.js) و دنو (Deno) و رسالت آن‌ها برای درک بهتر موضوع خالی لطف نیست.

این ویژگی‌ها، Bun را به انتخابی قانع‌کننده برای توسعه‌دهندگانی تبدیل می‌کند که به دنبال محیط زمان اجرای سبک، کارآمد و همه‌کاره جاوا اسکریپت هستند. در بخش فوق با اینکه مزایای Bun js چیست و کجا به درد کاربران می‌خورد توضیحاتی کامل ارائه دادیم. در ادامه نحوه نصب Bun js را در سیستم‌های مختلف مورد بررسی قرار خواهیم داد. یکی از جالب ترین پروژه های جاوا اسکریپت جدید Bun.js است، یک زمان اجرا و مجموعه ابزار از ابتدا در سمت سرور. Bun به سرعت در حال جلب نظر توسعه دهندگان با تقریباً ۴۰۰۰۰ ستاره در GitHub است. من این فرصت را پیدا کردم که با خالق Bun جارد سامنر صحبت کنم، که اخیراً بودجه VC را برای استارتاپ خود تضمین کرده است Oven.sh برای کمک به پرورش پروژه.

نیاز به بازنویسی بیشتر بسته های npm برای پشتیبانی Deno نیز پذیرش آن را به چالش می کشد. اگرچه Bun 1.0 ادعا می‌کند که می‌تواند تقریباً هر برنامه Node.js را اجرا کند اما بسیاری از توسعه‌دهندگان به این ادعا شک دارند. در این رابطه برنامه‌های پیچیده می‌توانند با مشکلاتی مواجه شوند و پیام‌های خطای مرموز را از عمق ماژول‌های شخص ثالث تولید کنند. 1 | ماژول‌ها و APIهای داخلی js مانند fs، path، http، console و assert با بان جی اس سازگار هستند. 4 | برای ترغیب توسعه‌دهندگان به سوییچ به سمت دنو، Deno درنهایت گزینه‌های سازگاری را برای js اضافه کرد. با این حال، در طول این مدت، Node.js برخی از ویژگی‌های Deno مانند ماژول‌های ES، اجراکننده تست داخلی و حالت تماشا (—watch mode) را نیز در خود جای داده است.

2 | متغیرها و اشیاء جهانی مانند __dirname و process در بان جی اس نیز کاربرد دارند. Bun قصد دارد به کل جایگزین نود جی اس شود اما هنوز طیف گسترده‌ای از ویژگی‌های موجود در Deno را ارائه نکرده است. در سال 2023 شخصی به نام Jarred Sumner، Bun را به دلیل ناامیدی از سرعت Node.js در حین کار بر روی پروژه Next.js ایجاد کرد. برخلاف Node.js و Deno که از موتور V8 استفاده می‌کنند، Bun از موتور JavaScriptCore استفاده می‌کند که در مرورگرهای WebKit مانند Safari یافت می‌شود. از طرف دیگر بزرگ‌ترین مزیت Node.js این است که اکوسیستمی بسیار بالغ و بزرگ دارد.

علاوه بر این، Bun مجموعه‌ای از APIهای استاندارد بهینه شده خود را برای کارهای رایج مختلف مانند عملیات فایل، سرویس‌دهی HTTP، پرس و جوی SQLite و هش رمز عبور ارائه می‌دهد. Bun از API های وب مختلف مانند fetch، URL، blob، WebSocket و موارد دیگر، همراه با API های سازگار با Node.js پشتیبانی کرده و این ویژگی آن را برای انواع مختلف پروژه‌ها همه‌کاره می‌کند. Bun شامل نوعی باندلر برای ادغام وابستگی‌ها در فایل واحدی است که نیاز به ابزارهای اضافی مانند esbuild یا Rollup را کاهش می‌دهد. ما در سکان‌آکادمی معتقدیم همه‌ی انسان‌ها حق دارند، به آموزش باکیفیت و کم‌هزینه دسترسی آسان داشته باشند و همه‌ی افراد می‌توانند با آموزش درست، زندگی فردی و اجتماعی خود را بهتر کنند. با توجه به تخصص تیم ما در حوزه‌ی IT و نیاز روزافزون بازار کار به متخصصان این حوزه، تولید و عرضه‌ی محتوای مهارت ‌محور و تخصصی را در حوزه‌ی IT جدی‌تر دنبال کردیم. در این راه از ابتدای انتخاب مسیر متناسب با توانایی و امکانات دانشجو تا یادگیری، تمرین، کسب مهارت تخصصی و عمومی، و در نهایت معرفی به بازار کار همراه او هستیم...

این ران‌تایم نوظهور که با زبان برنامه‌نویسی Zig ساخته شده، هم از Node.js و هم Deno سریع‌تر ظاهر می‌شود، خصوصا هنگام رسیدگی به وظایفی مانند نصب پکیج‌ها و اجرای تست‌ها. 3 | الگوریتم تفکیک ماژول js که به مکان‌یابی فایل‌ها در دایرکتوری node_modules کمک می‌کند در بان جی اس مورد استفاده قرار می‌گیرد. بنابراین، Deno ابزارها و روش‌های نوینی برای مدیریت بسته‌ها ارائه می‌دهد که به توسعه‌دهندگان کمک می‌کند تا به سادگی و با اطمینان بیشتری برنامه‌های خود را توسعه دهند. اگرچه به‌عنوان یک توسعه‌دهنده دسترسی به‌این نوع قابلیت‌ها سودمند است، اما اگر در هنگام نوشتن کد خود مراقب نباشید، خطرهای امنیتی را نیز ایجاد می‌کند. در این مقاله مقدماتی می‌توانید درباره فناوری پشت Bun اطلاعات بیشتری کسب کنید.

Bun اخیراً پشتیبانی اولیه را برای یک باندلر داخلی اضافه کرده است—این پروژه را در مسیر تبدیل شدن به فروشگاهی تک مرحله ای برای ابزارهای جاوا اسکریپت سمت سرور قرار داده است. برای ساخت NodeJS از زبان ++C و برای Deno از زبان Rust استفاده شده ولی Bun با تفاوت خیلی زیادی از زبان سطح پایین و قدرتمند Ziglang که رقیب مهم C به حساب میاد کمک گرفته. برخلاف Node.js و Deno که از موتور جاوا اسکریپت V8 کروم استفاده می‌کنند، Bun از موتور JavaScriptCore موجود در مرورگرهای WebKit مانند سافاری استفاده می‌کند. این انتخاب منجر به زمان اجرا سبک با زمان راه‌اندازی سریع‌تر و عملکرد بالقوه چهار برابر سریع‌تر تحت شرایط خاص می‌شود. گذشته از قابلیت‌های در دسترس و تاثیر آن‌ها بر کارایی (Performance)، تجربه پیشین توسعه‌دهندگان هم مهم است.

در مقایسه‌ای دیگر که میان این سه ران‌تایم انجام شده، Bun سریع‌ترین ران‌تایم در رسیدگی به اتصالات همزمان بوده و تعداد درخواست‌ها در هر ثانیه هم به شکل قابل توجهی بیشتر است. به عنوان مثال با ده اتصال همزمان، Bun به ۱۱۰ هزار درخواست بر ثانیه می‌رسد، اما این رقم برای Node.js و Deno به ترتیب ۶۰ هزار و ۶۷ هزار درخواست است. هرچه تعداد اتصالات همزمان بیشتر می‌شود، اختلاف عملکرد هم بیشتر به چشم می‌آید. Deno به‌طور پیش فرض تایپ اسکریپت را در حالت سخت (strict) بررسی می‌کند و تیم هسته‌ای تایپ اسکریپت نیز این حالت را به عنوان یک حالت منطقی پیشنهاد می‌کند. به‌‌هر‌حال، اولین بار که کدهای شما اجرا می‌شوند، تا زمانی که دوباره با پرچم (Flag)، --reload آنها را اجرا کنید، مواردی که import شده‌اند، کش (cache) می‌شوند. در مثال فوق، افزونه موجود ارائه فایل‌های.yaml را قطع می‌کند و منطق بارگیری سفارشی را با استفاده از کتابخانه js-yaml انجام می‌دهد.

این به طور قابل توجهی سریعتر و ایمن تر از Node است و با ابزارهای موجود در Node.js ارائه می شود. و از JSC یا JavaScriptCore استفاده کردن که نسبت به V8 عملکرد بهتری داره، کمپانی Apple توسعه اش میده و همچنین Engine مرورگر Saffari ام هست! به گفته سازنده Bun اکثر قسمت ها از صفر نوشته شده و مستقیما بدون هیچ پکیج خارجی میتونیم فایل های ts و jsx رو اجرا کنیم و سرعت خیلی بالایی رو توی فرایند توسعه ببینیم. مطابق با مستندات خود وبسایت Bun.sh، این تکنولوژی جدید یک محیط اجرایی جدید جاوا اسکریپتی است که از ابتدای کار ایجاد شده و از هیچ runtime دیگری نسخه برداری نشده است. 1 | عملکرد بان جی اس چشمگیر است اما از آنجایی که توسعه‌دهندگان کمی در مورد سرعت js نارضایتی دارند، ممکن است این مزیت به‌اندازه کافی قانع‌کننده نباشد.

در این حالت، Bun تغییرات را مانیتور کرده و به آرامی ماژول‌ها را بارگذاری می‌کند. در حالی که همه فایل‌ها دوباره ارزیابی می‌شوند، وضعیت سراسری دست‌نخورده باقی می‌ماند. Bun ماژول‌های کش را در پوشه یا فهرست ~/.bun/install/cache/ ذخیره کرده و از پیوندهای سخت برای کپی کردن آن‌ها در دایرکتوری node_modules پروژه استفاده می‌کند. این بدان معناست که همه پروژه‌های روی سیستم شما به نمونه‌ای واحد از کتابخانه ارجاع می‌دهند که این ویژگی استفاده از فضای دیسک را کاهش می‌دهد و عملکرد نصب را تا 30 برابر بهبود می‌بخشد. Bun نوعی تست اجرا کننده استاندارد مشابه Deno و Node.js به همراه فلگ –watch برای اسکریپت خودکار یا راه‌اندازی مجدد تست پس از اصلاح فایل ارائه می‌دهد. بنابراین، از این مقاله به عنوان پایه ای برای مقایسه این  محیط ران تایم  جاوا اسکریپت استفاده کنید.


برنامه نویسی زبان سی