سرور سائیڈ JavaScript پلیٹ فارم Node.js 16.0 کی ریلیز

Состоялся релиз Node.js 16.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 16.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 16.0 будет осуществляться до апреля 2023 года. Сопровождение прошлой LTS-ветки Node.js 14.0 продлится до апреля 2023 года, а позапрошлой LTS-ветки 12.0 до апреля 2022 года. Сопровождение LTS-ветки 10.0 будет прекращено через 10 дней.

اہم بہتری:

  • Движок V8 обновлён до версии 9.0 (в Node.js 15 использовался выпуск 8.6), что позволило реализовать в Node.js 16 такие возможности, как свойство «indices» для регулярных выражений (включает массив с начальными и конечными позициями групп совпадений), метод Atomics.waitAsync (асинхронная версия Atomics.wait), поддержка использования ключевого слова await в модулях на верхнем уровне. Ускорен вызов функций, в ситуации, когда число переданных аргументов не соответствует определённым в функции параметрам.
  • Стабилизирован API Timers Promises, предоставляющий альтернативный набор функций для работы с таймером, возвращающих на выходе объекты Promise, что позволяет обойтись без использования util.promisify(). import { setTimeout } from ‘timers/promises’; async function run() { await setTimeout(5000); console.log(‘Hello, World!’); } run();
  • Добавлена экспериментальная реализация API Web Crypto, предназначенного для выполнения базовых криптографических операций на стороне web-приложений, таких как манипуляции с криптографическими хэшами, генерация и проверка цифровых подписей, кодирование и декодирования данных с использованием различных методов шифрования, формирование криптографически надёжных случайных чисел. В API также предусмотрены функции для генерации ключей и управления ими.
  • N-API (API для разработки дополнений) обновлён до версии 8.
  • Осуществлён переход на новый выпуск пакетного менеджера NPM 7.10.
  • Стабилизирована реализация класса AbortController, основанного на Web API AbortController и позволяющего отменять сигналы в выбранных API на основе Promise.
  • Стабилизирована поддержка третьей версии формата Source Map, используемого для сопоставления сгенерированных, обработанных или упакованных модулей с оригинальным исходным кодом.
  • Для совместимости с устаревшими Web API добавлены методы buffer.atob(data) и buffer.btoa(data).
  • Началось формирование сборок для новых устройств Apple, оснащённых ARM-чипом M1.
  • На платформе Linux требования к версии компилятора подняты до GCC 8.3.

ہمیں یاد کرنے دیں کہ Node.js پلیٹ فارم ویب ایپلیکیشنز کے سرور سپورٹ اور عام کلائنٹ اور سرور نیٹ ورک پروگرام بنانے کے لیے دونوں استعمال کیا جا سکتا ہے۔ Node.js کے لیے ایپلی کیشنز کی فعالیت کو بڑھانے کے لیے، ماڈیولز کا ایک بڑا مجموعہ تیار کیا گیا ہے، جس میں آپ HTTP، SMTP، XMPP، DNS، FTP، IMAP، POP3 سرورز اور کلائنٹس، انضمام کے لیے ماڈیولز کے نفاذ کے ساتھ ماڈیولز تلاش کر سکتے ہیں۔ مختلف ویب فریم ورک، WebSocket اور Ajax ہینڈلرز، DBMS (MySQL، PostgreSQL، SQLite، MongoDB) کے کنیکٹرز، ٹیمپلیٹ انجن، CSS انجن، کرپٹوگرافک الگورتھم کے نفاذ اور اتھارٹی سسٹمز (OAuth)، XML پارسر کے ساتھ۔

متوازی درخواستوں کی بڑی تعداد کو ہینڈل کرنے کے لیے، Node.js غیر مسدود ایونٹ پروسیسنگ اور کال بیک ہینڈلرز کی وضاحت پر مبنی ایک غیر مطابقت پذیر کوڈ کے عمل درآمد ماڈل کا استعمال کرتا ہے۔ ملٹی پلیکسنگ کنکشن کے لیے معاون طریقوں میں ایپل، کیو، /dev/poll، اور سلیکٹ شامل ہیں۔ کنکشن ملٹی پلیکسنگ کے لیے، libuv لائبریری کا استعمال کیا جاتا ہے، جو یونکس سسٹمز پر libev اور ونڈوز پر IOCP میں ایک اضافہ ہے۔ libeio لائبریری کا استعمال تھریڈ پول بنانے کے لیے کیا جاتا ہے، اور c-ares کو DNS سوالات کو نان بلاکنگ موڈ میں انجام دینے کے لیے مربوط کیا جاتا ہے۔ تمام سسٹم کالز جو بلاکنگ کا سبب بنتی ہیں تھریڈ پول کے اندر عمل میں لائی جاتی ہیں اور پھر، سگنل ہینڈلرز کی طرح، اپنے کام کا نتیجہ ایک بے نام پائپ کے ذریعے واپس بھیج دیتے ہیں۔ جاوا اسکرپٹ کوڈ کا نفاذ گوگل کے تیار کردہ V8 انجن کے استعمال سے یقینی بنایا جاتا ہے (اس کے علاوہ، مائیکروسافٹ Node.js کا ایک ورژن چکرا کور انجن کے ساتھ تیار کر رہا ہے)۔

اس کے بنیادی طور پر، Node.js Perl AnyEvent، Ruby Event Machine، Python Twisted فریم ورک اور Tcl میں ایونٹس کے نفاذ سے ملتا جلتا ہے، لیکن Node.js میں ایونٹ کا لوپ ڈویلپر سے پوشیدہ ہے اور ویب ایپلیکیشن میں ایونٹ پروسیسنگ سے ملتا جلتا ہے۔ براؤزر میں چل رہا ہے۔ node.js کے لیے ایپلی کیشنز لکھتے وقت، ایونٹ سے چلنے والے پروگرامنگ کی تفصیلات کو مدنظر رکھنا ضروری ہے، مثال کے طور پر، "var result = db.query("select..");" کرنے کے بجائے۔ کام کی تکمیل کے انتظار اور نتائج کے بعد کی کارروائی کے ساتھ، Node.js غیر مطابقت پذیر عمل کے اصول کا استعمال کرتا ہے، یعنی کوڈ کو "db.query("select.."، فنکشن (نتیجہ) {رزلٹ پروسیسنگ}) میں تبدیل کر دیا جاتا ہے، جس میں کنٹرول فوری طور پر مزید کوڈ کو منتقل کر دیا جائے گا، اور ڈیٹا آتے ہی استفسار کے نتیجے پر کارروائی ہو جائے گی۔

Дополнительно можно отметить, что компания Deno, основанная создателем Node.js для развития платформы нового поколения Deno, получила 4.9 млн долларов инвестиций. По своему назначению Deno напоминает Node.js, но пытается устранить концептуальные ошибки, допущенные в архитектуре Node.js, и предоставить пользователям более защищённое окружение. Отмечается, что бизнес-решения компании Deno будут строится на полностью открытых продуктах, а модель Open Core с выделением отдельной платной функциональности воспринимается как неприемлемая для платформы Deno.

ماخذ: opennet.ru

نیا تبصرہ شامل کریں