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).

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

