Chromium негизиндеги браузерлерде колдонулган V8 кыймылдаткычын колдонуп, JavaScript жана TypeScript тилинде жазылган сервер тарабындагы жана жумушчу стол тиркемелерин өз алдынча аткаруу үчүн иштелип чыккан Deno 2.9 платформасы чыгарылды. Долбоор Node.js архитектурасындагы коопсуз чөйрөнү камсыз кылуу жана концептуалдык каталарды жок кылуу максатында Node.jsтин жаратуучусу Райан Дал тарабынан иштелип чыгууда. Коопсуздукту жакшыртуу үчүн V8 фреймворку Rust тилинде жазылган, ал эми Tokio платформасы бөгөт койбогон суроо-талаптарды иштетүү үчүн колдонулат. Долбоордун коду MIT лицензиясы боюнча таратылат. Курулуштар даярдалган... Linux, Windows и macOS.
Жаңы версиясы Electron платформасына окшош веб-технологияларды колдонуу менен курулган GUI тиркемелерин түзүүгө мүмкүндүк берген эксперименталдык Deno Desktop куралдар топтомун ишке ашыруусу менен айырмаланат. Тиркеменин логикасы жана интерфейси JavaScript же TypeScript тилдеринде стандарттуу веб-фреймворкторду колдонуу менен аныкталат жана тиркеме браузерге негизделген кыймылдаткычтын жардамы менен аткарылат. Тиркеме өзүнчө аткарылуучу файл катары жеткирилет жана классикалык GUI программаларына окшош колдонуучу интерфейсин сунуштайт.
Deno Desktop эки браузер кыймылдаткычында иштөө үчүн сервердик программаларды сунуштайт: операциялык системанын WebView жана тиркемеге интеграцияланган CEF (Chromium Embedded Framework). WebView негизиндеги сервердик программалар системанын WebView2 браузер кыймылдаткычынын үстүндө иштөө менен аткарылуучу файлдардын өлчөмдөрүн кичирейтүүгө мүмкүндүк берет. Windows жана WebKit ичинде macOS и Linux, жана CEF сервери платформаларда бирдей интерфейсти көрсөтүүгө мүмкүндүк берет Linux, macOS и Windows, бирок аткарылуучу файлдардын көлөмүнүн бир кыйла көбөйүшүнүн эсебинен.
Тесттик тиркеменин аткарылуучу файлынын өлчөмү WebView аркылуу 40 МБ жана CEF аркылуу 150 МБ деп бааланат. Салыштыруу үчүн, бул көрсөткүч Electron үчүн 100 МБ, Electrobun үчүн 61 МБ жана Tauri үчүн 2-10 МБ түзөт (Electron камтылган CEFти колдонот, ал эми Electrobun жана Tauri WebView системасын колдонушат). Тиркемелер арасында жалпы CEF кыймылдаткычын бөлүшүү механизми иштелип чыгууда, бул аткарылуучу файлдардын көлөмүн азайтат.
Deno Desktop Node.js, NPM экосистемасы жана Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start жана Vite SSR сыяктуу веб-алкакчалар менен толук шайкеш келет. Жергиликтүү рабочий API'лерине кирүү үчүн API каралган. Мисалы, сиз терезелердин өлчөмүн, абалын жана көрүнүүсүн башкара аласыз, менюларды түзө аласыз, ыңгайлаштырылган иштеткичтерди тиркей аласыз, системалык лоток жана панелдер үчүн сүрөтчөлөрдү орното аласыз жана жергиликтүү ОС диалогдорун көрсөтө аласыз. Веб-тиркемелерди кодун өзгөртпөстөн рабочий программалар катары түзсө болот, ал эми колдонулган веб-алкакчаларды автоматтык түрдө аныктоого жана бир системада кайчылаш компиляциялоого болот. Linux x64/arm64, Windows x64 жана macOS x64/arm64. Үчүн Linux Пакеттерди AppImage, deb жана rpm форматтарында түзүүгө болот.
Electron, Electrobun жана Tauriден айырмаланып, Deno Desktop сокетке негизделген IPC менен көп процесстүү аткаруу моделин колдонбойт. Анын ордуна, ал CEF үчүн көп жиптүү моделди же WebView үчүн процесстер тобуна негизделген моделди колдонот, ал сервер менен GUI кодунун ортосундагы байланышты процесстин ичиндеги каналдар аркылуу камсыз кылат. Анда камтылган жаңыртууларды текшерүү жана автоматтык орнотуу механизми бар, ал өткөрүү жөндөмдүүлүгүн үнөмдөө үчүн мурунку версиядан бери өзгөргөн маалыматтарды гана жүктөп алат (bsdiff негизиндеги экилик патчтарды колдонуу менен) жана жаңы версияны ишке киргизүүдө ката кеткен учурда мурунку версияга кайтарууну колдойт.
Deno 2.9дагы башка жаңы функциялар төмөнкүлөрдү камтыйт:
- npm, pnpm, yarn жана Bun'дон Deno'го көчүүнү жөнөкөйлөтүү үчүн "deno install" буйругунда кулпу файлдарын түз окууну колдоо.
- CSS модулдарын импорттоону колдоо.
- Node.js 26 платформасы менен шайкештикти ишке ашыруу.
- Жаңы "deno link", "deno unlink" жана "deno list" буйруктары.
- Ресурстарга кулпуларды орнотуу үчүн Web Locks API колдоо.
- Көз карандылыктын бузулушуна алып келүүчү чабуулдардан коргоо үчүн көз карандылыктардын жаңы версияларын орнотуудан мурун демейки 24 сааттык кечиктирүүнү (min-release-age=24h) иштетиңиз.
- HTTP менен иштөөдө ишке киргизүү убактысынын кыскарышы (~2x), эстутумдун керектелишинин азайышы (~2.2x) жана өткөрүү жөндөмдүүлүгүнүн жогорулашы (~1.2x).

Source: opennet.ru

