Κυκλοφόρησε το Deno 2.9, μια πλατφόρμα σχεδιασμένη για αυτόνομη εκτέλεση εφαρμογών από την πλευρά του διακομιστή και την επιφάνεια εργασίας, γραμμένες σε JavaScript και TypeScript χρησιμοποιώντας τη μηχανή V8, η οποία χρησιμοποιείται σε προγράμματα περιήγησης που βασίζονται στο Chromium. Το έργο αναπτύσσεται από τον Ryan Dahl, τον δημιουργό του Node.js, με στόχο την παροχή ενός πιο ασφαλούς περιβάλλοντος και την εξάλειψη εννοιολογικών σφαλμάτων στην αρχιτεκτονική Node.js. Για τη βελτίωση της ασφάλειας, το πλαίσιο V8 είναι γραμμένο σε Rust και η πλατφόρμα Tokio χρησιμοποιείται για την επεξεργασία αιτημάτων χωρίς αποκλεισμό. Ο κώδικας του έργου διανέμεται με την άδεια MIT. Οι εκδόσεις προετοιμάζονται για... Linux, Windows и macOS.
Η νέα έκδοση είναι αξιοσημείωτη για την εφαρμογή του πειραματικού κιτ εργαλείων Deno Desktop, το οποίο επιτρέπει τη δημιουργία προσαρμοσμένων εφαρμογών GUI που έχουν κατασκευαστεί χρησιμοποιώντας τεχνολογίες ιστού, παρόμοιες με την πλατφόρμα Electron. Η λογική και η διεπαφή της εφαρμογής ορίζονται σε JavaScript ή TypeScript χρησιμοποιώντας τυπικά πλαίσια ιστού και η εφαρμογή εκτελείται χρησιμοποιώντας μια μηχανή που βασίζεται σε πρόγραμμα περιήγησης. Η εφαρμογή παρέχεται ως αυτοτελές εκτελέσιμο αρχείο και προσφέρει μια διεπαφή χρήστη παρόμοια με αυτή των κλασικών προγραμμάτων GUI.
Το Deno Desktop προσφέρει backends για εκτέλεση σε δύο μηχανές περιήγησης: το WebView του λειτουργικού συστήματος και το CEF (Chromium Embedded Framework) που είναι ενσωματωμένο στην εφαρμογή. Το backend που βασίζεται στο WebView επιτρέπει μικρότερα μεγέθη εκτελέσιμων αρχείων εκτελούμενο πάνω από τη μηχανή περιήγησης WebView2 του συστήματος. Windows και WebKit σε macOS и Linuxκαι το backend του CEF καθιστά δυνατή την επίτευξη της ίδιας απόδοσης διεπαφής σε όλες τις πλατφόρμες Linux, macOS и Windows, αλλά με κόστος μια σημαντική αύξηση στο μέγεθος των εκτελέσιμων αρχείων.
Το μέγεθος του εκτελέσιμου αρχείου της δοκιμαστικής εφαρμογής εκτιμάται στα 40 MB χρησιμοποιώντας το WebView και στα 150 MB χρησιμοποιώντας το CEF. Για λόγους σύγκρισης, αυτό το μέγεθος είναι 100 MB για το Electron, 61 MB για το Electrobun και 2-10 MB για το Tauri (το Electron χρησιμοποιεί ενσωματωμένο CEF, ενώ το Electrobun και το Tauri χρησιμοποιούν το σύστημα WebView). Ένας μηχανισμός για την κοινή χρήση μιας κοινής μηχανής CEF μεταξύ εφαρμογών βρίσκεται υπό ανάπτυξη, ο οποίος θα μειώσει το μέγεθος των εκτελέσιμων αρχείων.
Το Deno Desktop είναι πλήρως συμβατό με το Node.js, το οικοσύστημα NPM και web frameworks όπως Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start και Vite SSR. Παρέχεται ένα API για την πρόσβαση σε native desktop APIs. Για παράδειγμα, μπορείτε να ελέγξετε το μέγεθος, τη θέση και την ορατότητα των παραθύρων, να δημιουργήσετε μενού, να προσαρτήσετε προσαρμοσμένους χειριστές, να ορίσετε εικονίδια για την περιοχή ειδοποιήσεων και τα πάνελ και να εμφανίσετε native OS dialogs. Οι εφαρμογές web μπορούν να δημιουργηθούν ως προγράμματα επιφάνειας εργασίας χωρίς να αλλάξουν τον κώδικά τους και τα web frameworks που χρησιμοποιούνται μπορούν να ανιχνευθούν αυτόματα και να μεταγλωττιστούν σε ένα μόνο σύστημα για... Linux x64/βραχίονας 64, Windows x64 και macOS x64/βραχίονας 64. Για Linux Τα πακέτα μπορούν να δημιουργηθούν σε μορφές AppImage, deb και rpm.
Σε αντίθεση με τα Electron, Electrobun και Tauri, το Deno Desktop δεν χρησιμοποιεί μοντέλο εκτέλεσης πολλαπλών διεργασιών με IPC που βασίζεται σε socket. Αντίθετα, χρησιμοποιεί ένα μοντέλο πολλαπλών νημάτων για CEF ή ένα μοντέλο που βασίζεται σε ομάδα διεργασιών για WebView, με επικοινωνία μεταξύ του backend και του κώδικα GUI μέσω ενδοδιεργασιακών καναλιών. Διαθέτει ενσωματωμένο μηχανισμό ελέγχου ενημερώσεων και αυτόματης εγκατάστασης που, για εξοικονόμηση εύρους ζώνης, κατεβάζει μόνο δεδομένα που έχουν αλλάξει από την προηγούμενη έκδοση (χρησιμοποιώντας δυαδικά patches που βασίζονται σε bsdiff) και υποστηρίζει την επαναφορά στην προηγούμενη έκδοση σε περίπτωση σφάλματος κατά την εκκίνηση μιας νέας έκδοσης.
Άλλα νέα χαρακτηριστικά στο Deno 2.9 περιλαμβάνουν:
- Υποστήριξη για άμεση ανάγνωση αρχείων κλειδώματος στην εντολή "deno install" για απλοποίηση της μετεγκατάστασης στο Deno από npm, pnpm, yarn και Bun.
- Υποστήριξη για την εισαγωγή ενοτήτων CSS.
- Υλοποίηση συμβατότητας με την πλατφόρμα Node.js 26.
- Νέες εντολές "deno link", "deno unlink" και "deno list".
- Υποστήριξη για το Web Locks API για τον ορισμό κλειδωμάτων σε πόρους.
- Ενεργοποιήστε μια προεπιλεγμένη καθυστέρηση 24 ωρών (min-release-age=24h) πριν από την εγκατάσταση νέων εκδόσεων εξαρτήσεων για προστασία από επιθέσεις παραβίασης εξαρτήσεων.
- Μειωμένος χρόνος εκκίνησης (~2x), μειωμένη κατανάλωση μνήμης (~2.2x) και αυξημένη απόδοση κατά την εργασία με HTTP (~1.2x).

Πηγή: opennet.ru

