Το έργο Deno αναπτύσσει μια ασφαλή πλατφόρμα JavaScript παρόμοια με το Node.js

Διαθέσιμος έκδοση έργου Ντενό 0.33, το οποίο προσφέρει μια πλατφόρμα παρόμοια με το Node.js για αυτόνομη εκτέλεση εφαρμογών σε JavaScript και TypeScript που μπορεί να χρησιμοποιηθεί για την εκτέλεση εφαρμογών χωρίς να συνδέεται με πρόγραμμα περιήγησης, όπως η δημιουργία εργαλείων χειρισμού που εκτελούνται στον διακομιστή. Το Deno χρησιμοποιεί μηχανή JavaScript V8, το οποίο χρησιμοποιείται επίσης στο Node.js και σε προγράμματα περιήγησης που βασίζονται στο έργο Chromium. Κωδικός έργου διανέμονται από με άδεια MIT. Το έργο αναπτύσσεται από τον Ryan Dahl (Ράιαν Νταχ), δημιουργός της πλατφόρμας JavaScript Node.js.

Ένας από τους κύριους στόχους της δημιουργίας ενός νέου χρόνου εκτέλεσης για JavaScript είναι η παροχή ενός πιο ασφαλούς περιβάλλοντος. Για να βελτιωθεί η ασφάλεια, ο κινητήρας V8 είναι γραμμένος σε Rust, το οποίο αποφεύγει πολλά από τα τρωτά σημεία που προκύπτουν από τη χειραγώγηση της μνήμης χαμηλού επιπέδου, όπως η μετά την ελεύθερη πρόσβαση, οι μηδενικές παραπομπές δείκτη και οι υπερβάσεις buffer. Η πλατφόρμα χρησιμοποιείται για την επεξεργασία αιτημάτων σε λειτουργία μη αποκλεισμού Tokio, γραμμένο και στο Rust. Το Tokio σάς επιτρέπει να δημιουργείτε εφαρμογές υψηλής απόδοσης με βάση την αρχιτεκτονική που βασίζεται σε συμβάντα, υποστηρίζοντας πολλαπλές νήματα και επεξεργασία αιτημάτων δικτύου σε ασύγχρονη λειτουργία.

Ο κύριος χαρακτηριστικά Deno:

  • Προεπιλεγμένη διαμόρφωση προσανατολισμένη στην ασφάλεια. Η πρόσβαση σε αρχεία, η δικτύωση και η πρόσβαση στις μεταβλητές περιβάλλοντος είναι απενεργοποιημένες από προεπιλογή και πρέπει να είναι ρητά ενεργοποιημένες.
  • Ενσωματωμένη υποστήριξη για τη γλώσσα TypeScript επιπλέον της JavaScript.
  • Ο χρόνος εκτέλεσης έρχεται με τη μορφή ενός ενιαίου αυτόνομου εκτελέσιμου αρχείου ("deno"). Για να τρέξετε εφαρμογές χρησιμοποιώντας το Deno αρκεί κατεβάστε για την πλατφόρμα του ένα εκτελέσιμο αρχείο, μεγέθους περίπου 10 MB, το οποίο δεν έχει εξωτερικές εξαρτήσεις και δεν απαιτεί ειδική εγκατάσταση στο σύστημα.
  • Κατά την εκκίνηση του προγράμματος, καθώς και για τη φόρτωση λειτουργικών μονάδων, μπορείτε να χρησιμοποιήσετε τη διεύθυνση URL. Για παράδειγμα, για να εκτελέσετε το πρόγραμμα welcome.js, μπορείτε να χρησιμοποιήσετε την εντολή "deno https://deno.land/std/examples/welcome.js". Ο κώδικας από εξωτερικούς πόρους λαμβάνεται και αποθηκεύεται προσωρινά στο τοπικό σύστημα, αλλά δεν ενημερώνεται ποτέ αυτόματα (η ενημέρωση απαιτεί ρητά την εκτέλεση της εφαρμογής με τη σημαία "--reload").
  • Αποτελεσματική επεξεργασία αιτημάτων δικτύου μέσω HTTP σε εφαρμογές· η πλατφόρμα έχει σχεδιαστεί για τη δημιουργία εφαρμογών δικτύου υψηλής απόδοσης.
  • Η δυνατότητα δημιουργίας καθολικών εφαρμογών Ιστού που μπορούν να εκτελεστούν τόσο σε Deno όσο και σε κανονικό πρόγραμμα περιήγησης ιστού.
  • Εκτός από το χρόνο εκτέλεσης, η πλατφόρμα Deno λειτουργεί επίσης ως διαχειριστής πακέτων και σας επιτρέπει να έχετε πρόσβαση σε λειτουργικές μονάδες μέσω URL μέσα στον κώδικα. Για παράδειγμα, για να φορτώσετε μια λειτουργική μονάδα, μπορείτε να καθορίσετε στον κωδικό "εισαγωγή * ως αρχείο καταγραφής από το "https://deno.land/std/log/mod.ts". Τα αρχεία που λαμβάνονται από εξωτερικούς διακομιστές μέσω URL αποθηκεύονται προσωρινά. Η δέσμευση σε εκδόσεις λειτουργικών μονάδων καθορίζεται με τον καθορισμό των αριθμών έκδοσης μέσα στη διεύθυνση URL, για παράδειγμα, "https://unpkg.com/[προστασία μέσω email]/dist/liltest.js";
  • Η δομή περιλαμβάνει ένα ενσωματωμένο σύστημα επιθεώρησης εξάρτησης (την εντολή «deno info») και ένα βοηθητικό πρόγραμμα για τη μορφοποίηση κώδικα (deno fmt).
  • Για προγραμματιστές εφαρμογών προτείνεται ένα σύνολο τυπικών ενοτήτων που έχουν υποβληθεί σε πρόσθετο έλεγχο και δοκιμές συμβατότητας.
  • Όλα τα σενάρια εφαρμογών μπορούν να συνδυαστούν σε ένα αρχείο JavaScript.

Διαφορές από το Node.js:

  • Το Deno δεν χρησιμοποιεί τη διαχείριση πακέτων npm
    και δεν συνδέεται με αποθετήρια, οι λειτουργικές μονάδες απευθύνονται μέσω μιας διεύθυνσης URL ή μέσω μιας διαδρομής αρχείου και οι ίδιες οι μονάδες μπορούν να τοποθετηθούν σε οποιονδήποτε ιστότοπο.

  • Η Deno δεν χρησιμοποιεί το "package.json" για τον ορισμό λειτουργικών μονάδων.
  • Διαφορά API, όλες οι ασύγχρονες ενέργειες στο Deno επιστρέφουν μια υπόσχεση.
  • Το Deno απαιτεί ρητό ορισμό όλων των απαραίτητων δικαιωμάτων για αρχεία, μεταβλητές δικτύου και περιβάλλοντος.
  • Όλα τα σφάλματα που δεν παρέχονται με τους χειριστές οδηγούν στον τερματισμό της εφαρμογής.
  • Το Deno χρησιμοποιεί το σύστημα λειτουργικής μονάδας ECMAScript και δεν υποστηρίζει την απαιτούμενη().

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο