Κυκλοφόρησε η πλατφόρμα Node.js 24.0.0

Κυκλοφόρησε το Node.js 24.0.0, μια πλατφόρμα για την εκτέλεση εφαρμογών δικτύου σε JavaScript. Το Node.js 24.0 έχει αντιστοιχιστεί στους κλάδους μακροπρόθεσμης υποστήριξης, αλλά αυτή η κατάσταση θα αντιστοιχιστεί μόνο τον Οκτώβριο, μετά τη σταθεροποίηση. Το Node.js 24.x θα υποστηρίζεται έως τις 30 Απριλίου 2028. Ο προηγούμενος κλάδος LTS, Node.js 22.x, θα υποστηρίζεται έως τον Απρίλιο του 2027 και ο προηγούμενος κλάδος LTS 20.x θα υποστηρίζεται έως τον Απρίλιο του 2026. Η συντήρηση του κλάδου 18.x LTS θα λήξει στις 30 Απριλίου 2025 και ο ενδιάμεσος κλάδος Node.js 23.x θα λήξει την 1η Ιουνίου 2025.

Κύριες βελτιώσεις:

  • Το API AsyncLocalStorage χρησιμοποιεί την κλάση AsyncContextFrame από προεπιλογή, η οποία έχει επισημανθεί ως σταθερή. Το AsyncContextFrame εφαρμόζει έναν πιο αποτελεσματικό μηχανισμό για την παρακολούθηση ασύγχρονου περιβάλλοντος, ο οποίος μπορεί να βελτιώσει σημαντικά την απόδοση.
  • Το URLPattern API είναι πλέον διαθέσιμο ως καθολικό αντικείμενο που μπορεί να χρησιμοποιηθεί χωρίς ρητή εισαγωγή. Το URLPattern παρέχει τη δυνατότητα ελέγχου εάν μια διεύθυνση URL ταιριάζει με ένα συγκεκριμένο μοτίβο, το οποίο μπορεί να χρησιμοποιηθεί, για παράδειγμα, για την ανάλυση συνδέσμων.
  • Ο μηχανισμός του Μοντέλου Δικαιωμάτων έχει βελτιωθεί και σταθεροποιηθεί, επιτρέποντάς σας να περιορίσετε την πρόσβαση σε ορισμένους πόρους κατά την εκτέλεση (για παράδειγμα, μπορείτε να απαγορεύσετε τη δημιουργία θυγατρικών διεργασιών, να περιορίσετε την πρόσβαση στη γραφή ή την ανάγνωση σε ορισμένα μέρη του FS, να απενεργοποιήσετε πρόσθετα). Αντί για την πειραματική σημαία "--experimental-permission", η σημαία "--permission" μπορεί πλέον να χρησιμοποιηθεί για την ενεργοποίηση του Μοντέλου Δικαιωμάτων.
  • Οι δυνατότητες της ενότητας node:test (test_runner), η οποία έχει σχεδιαστεί για τη δημιουργία και εκτέλεση δοκιμών σε JavaScript που επιστρέφουν αποτελέσματα σε μορφή TAP (Test Anything Protocol), έχουν επεκταθεί. Η ενότητα πλέον περιμένει αυτόματα την ολοκλήρωση των ενσωματωμένων δοκιμών χωρίς να χρειάζεται να χρησιμοποιήσει την εντολή wait.
  • Το πρόγραμμα-πελάτης HTTP undici έχει ενημερωθεί στην έκδοση 7.x, η οποία βελτιώνει την απόδοση και προσθέτει υποστήριξη για νέες δυνατότητες HTTP.
  • Η μηχανή V8 έχει ενημερωθεί στην έκδοση 13.6, η οποία χρησιμοποιείται στο Chromium 136. Νέες δυνατότητες σε σύγκριση με την προηγούμενη έκδοση Node.js περιλαμβάνουν υποστήριξη για πληκτρολογημένους πίνακες Float16Array, μη αυτόματη διαχείριση πόρων, τη μέθοδο RegExp.escape (συμβολοσειρές διαφυγής για το RegExp), δείκτες 64-bit (Memory64) στο WebAssembly και τη μέθοδο Error.isError.
  • Ο διαχειριστής πακέτων NPM έχει ενημερωθεί στην έκδοση 11.
  • Η υποστήριξη μεταγλωττιστών MSVC έχει διακοπεί. Για μεταγλώττιση στην πλατφόρμα Windows Πρέπει να χρησιμοποιήσετε το ClangCL.

Η πλατφόρμα Node.js μπορεί να χρησιμοποιηθεί τόσο για υποστήριξη εφαρμογών ιστού από την πλευρά του διακομιστή όσο και για τη δημιουργία τυπικών προγραμμάτων δικτύου από την πλευρά του πελάτη και του διακομιστή. Για την επέκταση της λειτουργικότητας των εφαρμογών Node.js, έχει προετοιμαστεί μια μεγάλη συλλογή ενοτήτων, συμπεριλαμβανομένων εκείνων που υλοποιούν διακομιστές και clients HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modules για ενσωμάτωση με διάφορα web frameworks, WebSocket και Ajax handlers, connectors to DBMS (MySQL, PostgreSQL, SQLite, MongoDB), template engines, CSS engines, υλοποιήσεις κρυπτογραφικών αλγορίθμων και συστημάτων εξουσιοδότησης (OAuth), XML parsers.

Για να χειριστεί μεγάλο αριθμό ταυτόχρονων αιτημάτων, το Node.js χρησιμοποιεί ένα ασύγχρονο μοντέλο εκτέλεσης κώδικα που βασίζεται σε επεξεργασία συμβάντων χωρίς αποκλεισμό και χειριστές επανάκλησης. Οι μέθοδοι πολυπλεξίας συνδέσεων που υποστηρίζονται περιλαμβάνουν τα epoll, kqueue, /dev/poll και select. Η πολυπλεξία συνδέσεων χρησιμοποιεί τη βιβλιοθήκη libuv, η οποία είναι μια ενσωμάτωση στην κορυφή του libev σε συστήματα Unix και του IOCP σε WindowsΗ βιβλιοθήκη libeio χρησιμοποιείται για τη δημιουργία μιας ομάδας νημάτων (thread pool) και το c-ares είναι ενσωματωμένο για την εκτέλεση ερωτημάτων DNS σε λειτουργία χωρίς αποκλεισμό. Όλες οι κλήσεις συστήματος αποκλεισμού εκτελούνται εντός της ομάδας νημάτων και στη συνέχεια, όπως οι χειριστές σημάτων, επιστρέφουν τα αποτελέσματά τους μέσω μιας ανώνυμης διοχέτευσης.

Η εκτέλεση του κώδικα JavaScript διασφαλίζεται μέσω της χρήσης της μηχανής V8 που αναπτύχθηκε από την Google (επιπλέον, η Microsoft αναπτύσσει μια έκδοση του Node.js με τη μηχανή Chakra-Core). Στον πυρήνα του, το Node.js είναι παρόμοιο με τα πλαίσια Perl AnyEvent, Ruby Event Machine, Python Twisted και την υλοποίηση συμβάντων στο Tcl, αλλά ο βρόχος συμβάντων στο Node.js είναι κρυμμένος από τον προγραμματιστή και μοιάζει με την επεξεργασία συμβάντων σε μια εφαρμογή Ιστού τρέχει στο πρόγραμμα περιήγησης.

Πηγή: opennet.ru

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster