Deno жобасы Node.js сияқты қауіпсіз JavaScript платформасын жасауда

Қол жетімді жобаның шығарылымы Deno 0.33, ол серверде іске қосылатын өңдеушілерді жасау сияқты браузерге байланыстырмай қолданбаларды іске қосу үшін пайдалануға болатын JavaScript және TypeScript тілдерінде дербес қолданбаны орындауға арналған Node.js тәрізді платформаны ұсынады. Deno JavaScript қозғалтқышын пайдаланады V8, ол Chromium жобасына негізделген Node.js және браузерлерде де қолданылады. Жоба коды таралады MIT лицензиясы бойынша. Жобаны әзірлеуші ​​Райан Дал (Райан Дал), Node.js JavaScript платформасын жасаушы.

JavaScript үшін жаңа орындалу уақытын жасаудың негізгі мақсаттарының бірі қауіпсіз ортаны қамтамасыз ету болып табылады. Қауіпсіздікті жақсарту үшін V8 қозғалтқышы Rust тілінде жазылған, ол төмен деңгейлі жад манипуляциясынан кейін пайда болатын көптеген осалдықтарды болдырмайды, мысалы, бос қол жеткізу, нөлдік көрсеткіш сілтемелері және буфердің асып кетуі. Платформа блокталмаған режимде сұрауларды өңдеу үшін пайдаланылады Токио, сонымен қатар Rust тілінде жазылған. Токио көп ағынды қолдау және асинхронды режимде желілік сұрауларды өңдеу, оқиғаларға негізделген архитектураға негізделген жоғары өнімді қолданбаларды жасауға мүмкіндік береді.

басты әсіресе Дено:

  • Қауіпсіздікке бағытталған әдепкі конфигурация. Файлға қатынау, желіге қосылу және ортаның айнымалы мәндеріне қатынасу әдепкі бойынша өшірілген және анық қосулы болуы керек;
  • JavaScript-тен басқа TypeScript тіліне кіріктірілген қолдау;
  • Орындау уақыты бір дербес орындалатын файл түрінде келеді («deno»). Deno көмегімен қолданбаларды іске қосу үшін жеткілікті жүктеп салу оның платформасы үшін сыртқы тәуелділіктері жоқ және жүйеде арнайы орнатуды қажет етпейтін көлемі шамамен 10 Мбайт орындалатын бір файл;
  • Бағдарламаны іске қосу кезінде, сондай-ақ модульдерді жүктеу үшін URL мекенжайын пайдалануға болады. Мысалы, Welcome.js бағдарламасын іске қосу үшін “deno https://deno.land/std/examples/welcome.js” пәрменін пайдалануға болады. Сыртқы ресурстардан алынған код жергілікті жүйеде жүктеледі және кэштеледі, бірақ ешқашан автоматты түрде жаңартылмайды (жаңарту үшін қолданбаны «--қайта жүктеу» жалаушасымен нақты іске қосу қажет);
  • Қолданбаларда HTTP арқылы желілік сұраныстарды тиімді өңдеу;платформа өнімділігі жоғары желілік қосымшаларды құруға арналған;
  • Deno-да да, қарапайым веб-шолғышта да орындалатын әмбебап веб-қосымшаларды жасау мүмкіндігі;
  • Орындалу уақытынан басқа, Deno платформасы пакет менеджері ретінде де әрекет етеді және код ішіндегі URL мекенжайы арқылы модульдерге қол жеткізуге мүмкіндік береді. Мысалы, модульді жүктеу үшін «https://deno.land/std/log/mod.ts» журналынан импорттау * кодында көрсетуге болады. URL арқылы сыртқы серверлерден жүктелген файлдар кэштеледі. Модуль нұсқаларына байланыстыру URL ішіндегі нұсқа нөмірлерін көрсету арқылы анықталады, мысалы, “https://unpkg.com/[электрондық пошта қорғалған]/dist/liltest.js»;
  • Құрылым тәуелділікті тексерудің біріктірілген жүйесін («deno info» пәрмені) және кодты пішімдеуге арналған утилитаны (deno fmt) қамтиды.
  • Қолданбаларды әзірлеушілер үшін ұсынылған қосымша аудит пен үйлесімділік тестілеуінен өткен стандартты модульдер жиынтығы;
  • Барлық қолданба сценарийлерін бір JavaScript файлына біріктіруге болады.

Node.js айырмашылығы:

  • Deno npm пакет менеджерін пайдаланбайды
    және репозиторийлерге байланысты емес, модульдер URL мекенжайы немесе файл жолы арқылы адрестеледі және модульдердің өзін кез келген веб-сайтта орналастыруға болады;

  • Deno модульдерді анықтау үшін "package.json" қолданбайды;
  • API айырмашылығы, Deno ішіндегі барлық асинхронды әрекеттер уәдені қайтарады;
  • Deno файлдар, желі және орта айнымалылары үшін барлық қажетті рұқсаттардың нақты анықтамасын талап етеді;
  • Өңдеушілермен қамтамасыз етілмеген барлық қателер қолданбаның тоқтатылуына әкеледі;
  • Deno ECMAScript модуль жүйесін пайдаланады және require() функциясын қолдамайды.

Ақпарат көзі: opennet.ru

пікір қалдыру